我在environmental声明性管道的指令部分有一组静态环境变量。这些值可用于管道中的每个阶段。我希望根据任意条件更改值。有没有办法做到这一点?
pipeline {
agent any
environment {
if ${params.condition} {
var1 = '123'
var2 = abc
} else {
var1 = '456'
var2 = def
}
}
stages {
stage('One') {
steps {
script {
...
echo env.var1
echo env.var2
...
}
}
}
}
stag('Two'){
steps {
script {
...
echo env.var1
echo env.var2
...
}
}
}
Run Code Online (Sandbox Code Playgroud)
我建议您创建一个阶段“环境”并根据您想要的条件声明您的变量,如下所示:-
pipeline {
agent any
environment {
// Declare variables which will remain same throughout the build
}
stages {
stage('Environment') {
agent { node { label 'master' } }
steps {
script {
//Write condition for the variables which need to change
if ${params.condition} {
env.var1 = '123'
env.var2 = abc
} else {
env.var1 = '456'
env.var2 = def
}
sh "printenv"
}
}
}
stage('One') {
steps {
script {
...
echo env.var1
echo env.var2
...
}
}
}
stage('Two'){
steps {
script {
...
echo env.var1
echo env.var2
...
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
基本上是使用三元条件运算符
pipeline {
agent any
environment {
var1 = "${params.condition == true ? "123" : "456"}"
var2 = "${params.condition == true ? abc : def}"
}
}
Run Code Online (Sandbox Code Playgroud)
注意:请记住,按照您写问题的方式(我做了我的回答),数字是字符串,字母是变量。
| 归档时间: |
|
| 查看次数: |
6379 次 |
| 最近记录: |