Jenkins je open-source automatizovaný nástroj s výkonnou architektúrou pluginov, ktorá pomáha vývojovým tímom automatizovať ich životný cyklus softvéru.
V porovnaní s tradičnými (freestylovými) jobmy poskytuje pipeline lepšiu vizualizáciu stavu niekoľkých častí, ktoré tvoria job-y. Pipeline su všestrannejšie vzhľadom na ich schopnosť daľšej úpravy, spájania, opätovného prepoužívania a vzájomného paralelného volania.
Pipeline v jednoduchosti možno pochopiť aj ako job ktorý definuje proces. Jeho výstupom sa stáva build. Pipeline definuje sériu jobov. Najdôležitejšou časťou pipline je krok steps, ktorý definuje blok kódu skriptu.
Pipeline označovaný aj ako workflow CD bol pomocou komunity vytvorený z dôvodu flexibility, rozšíriteľnosti a možnosti skriptovania.
Skripty obsiahnute v Pipeline je možné písať s použitím deklaratívnej (Declarativ Pipeline) alebo skriptovacej (Scripted Pipeline) syntaxe.
Pomerne nové rozšírenie, ktoré predstavuje jednoduchšiu definíciu. Deklaratívny Pipeline bol vytvorený s cieľom ponúknuť jednoduchšiu a umienenú syntax, podporuje deklaratívny programovací model.
Hlavnou podmienkou je, aby bol celý blok uzatvorený v rámci pipeline { }
príklad:
pipeline {
agent any
stages {
stage('Build') {
steps {
echo 'Building..'
}
}
stage('Test') {
steps {
echo 'Testing..'
}
}
stage('Deploy') {
steps {
echo 'Deploying....'
}
}
}
}
Je efektivnejšia ako “Deklaratívny pipeline”. Vzužíva Groovy jazyk (pomocou DSL). Vďaka čomu môže byť veľmi expresívny a flexibilný nástroj pri vytváraní pipeline skriptu.
Obmedzenia skriptovacej pipeline spočívajú v samotnom jayzku Groovy.
Tento typ pipeline je ideálnu voľbu pre užívateľov, ktorý majú zložitejšie požiadavky.
príklad:
node {
stage('Build') {
echo 'Building....'
}
stage('Test') {
echo 'Testing....'
}
stage('Deploy') {
echo 'Deploying....'
}
}
Pipeline poskytujú novú silu a flexibilitu pre konfiguráciu Jenkinsu, vďaka čomu je skutočne ľahké zmigrovať existujúce “freestyle” job-y do pipeline.
Tzv. “multi-branch” úlohy poskytujú vynikajúci nadhľad nad stavom neustále sa rozvíjajúcej “branch-e” a pipeline definovaný vo verziovacom súbore “Jenkinsfile” nám umožňujú jednoducho zistiť, kto vykonal aké zmeny, na základe akých dôvodov a zároven poskytuje históriu zmien kódu.