Jenkins 2.138.3には、2つの異なるタイプのパイプラインがあります。
宣言的およびスクリプト化されたパイプライン。
「宣言型パイプラインは、パイプラインDSLの新しい拡張機能です(基本的に、1つのステップのみのパイプラインスクリプトであり、引数を持つパイプラインステップ(ディレクティブと呼ばれます)。これらのディレクティブは特定の構文に従う必要があります。この新しい形式のポイントは、はより厳密であり、したがって、パイプラインの初心者にとっては簡単であり、グラフィカルな編集が可能になり、さらに多くのことが可能になります。スクリプト化されたパイプラインは、高度な要件のフォールバックです。」
jenkinsパイプライン:エージェントvsノード?
次に、宣言型パイプラインで環境変数とグローバル変数を使用する例を示します。それらが設定された後、私が知ることができることから、環境は静的です。
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