Di Jenkins 2.138.3 ada dua jenis pipa yang berbeda.
Pipeline Deklaratif dan Scripted.
"Pipeline deklaratif adalah ekstensi baru dari pipeline DSL (ini pada dasarnya adalah skrip pipeline dengan hanya satu langkah, langkah pipeline dengan argumen (disebut arahan), arahan ini harus mengikuti sintaks tertentu. Inti dari format baru ini adalah bahwa itu lebih ketat dan karena itu akan lebih mudah bagi mereka yang baru mengenal pipeline, memungkinkan pengeditan grafis dan banyak lagi. pipeline dengan skrip adalah pengganti untuk persyaratan lanjutan. "
pipeline jenkins: agen vs node?
Berikut adalah contoh penggunaan variabel lingkungan dan global dalam Declarative Pipeline. Dari apa yang saya tahu bahwa lingkungan menjadi statis setelah ditetapkan.
def browser = 'Unknown'
pipeline {
agent any
environment {
//Use Pipeline Utility Steps plugin to read information from pom.xml into env variables
IMAGE = readMavenPom().getArtifactId()
VERSION = readMavenPom().getVersion()
}
stages {
stage('Example') {
steps {
script {
browser = sh(returnStdout: true, script: 'echo Chrome')
}
}
}
stage('SNAPSHOT') {
when {
expression {
return !env.JOB_NAME.equals("PROD") && !env.VERSION.contains("RELEASE")
}
}
steps {
echo "SNAPSHOT"
echo "${browser}"
}
}
stage('RELEASE') {
when {
expression {
return !env.JOB_NAME.equals("TEST") && !env.VERSION.contains("RELEASE")
}
}
steps {
echo "RELEASE"
echo "${browser}"
}
}
}//end of stages
}//end of pipeline