В Jenkins 2.138.3 есть два разных типа конвейеров.
Декларативные и скриптовые конвейеры.
«Декларативные конвейеры - это новое расширение конвейерного DSL (это, по сути, конвейерный сценарий с одним шагом, шаг конвейера с аргументами (называемыми директивами), эти директивы должны следовать определенному синтаксису. Суть этого нового формата в том, что он является более строгим и, следовательно, должен быть проще для тех, кто плохо знаком с конвейерами, допускает графическое редактирование и многое другое. конвейеры со сценариями - это запасной вариант для расширенных требований ".
Конвейер Дженкинса: агент против узла?
Вот пример использования окружения и глобальных переменных в декларативном конвейере. Из того, что я могу сказать, enviroment статичны после того, как они установлены.
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