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