En Jenkins 2.138.3 hay dos tipos diferentes de canalizaciones.
Pipelines declarativos y con script.
"Las canalizaciones declarativas son una nueva extensión del DSL de canalización (básicamente es una secuencia de comandos de canalización con un solo paso, un paso de canalización con argumentos (llamados directivas), estas directivas deben seguir una sintaxis específica. El objetivo de este nuevo formato es que es más estricto y, por lo tanto, debería ser más fácil para los nuevos en las canalizaciones, permitir la edición gráfica y mucho más. Las canalizaciones con secuencias de comandos son la alternativa para los requisitos avanzados ".
canalización de Jenkins: agente vs nodo?
A continuación, se muestra un ejemplo del uso de variables globales y de entorno en una canalización declarativa. Por lo que puedo decir, el entorno es estático después de que se configuran.
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