У Jenkins 2.138.3 є два різних типи трубопроводів.
Декларативні та сценарії трубопроводів.
"Декларативні трубопроводи - це нове розширення DSL конвеєра (це в основному сценарій конвеєра лише з одним кроком, крок конвеєра з аргументами (звані директивами). Ці директиви повинні слідувати конкретному синтаксису. Суть цього нового формату полягає в тому, що він є більш суворим і тому повинен бути простішим для тих, хто починає працювати з конвеєрами, допускати графічне редагування та багато іншого.
Дженкінс трубопровід: агент проти вузла?
Ось приклад використання змінних середовища та глобальних змінних у декларативному конвеєрі. З того, що я можу сказати, навколишнє середовище є статичним після їх встановлення.
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