No Jenkins 2.138.3, existem dois tipos diferentes de pipelines.
Pipelines declarativos e com script.
"Pipelines declarativos são uma nova extensão do DSL de pipeline (é basicamente um script de pipeline com apenas uma etapa, uma etapa de pipeline com argumentos (chamados de diretivas), essas diretivas devem seguir uma sintaxe específica. O objetivo desse novo formato é que é mais estrito e, portanto, deve ser mais fácil para os iniciantes em pipelines, permite a edição gráfica e muito mais. pipelines com script são a alternativa para requisitos avançados. "
pipeline de Jenkins: agente vs nó?
Aqui está um exemplo de uso de variáveis de ambiente e globais em um pipeline declarativo. Pelo que posso dizer, os ambientes ficam estáticos depois de configurados.
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