我在声明性管道的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
...
}
}
}
4条答案
按热度按时间monwx1rj1#
我在other question中找到了一个nice answer:
基本上是使用三元条件运算符
8ehkhllq2#
我建议您创建一个阶段“环境”,并根据您想要的条件声明变量,如下所示:-
xn1cxnb43#
假设我们想为下游作业使用可选参数(如果它是从上游作业调用的),以及默认参数(如果下游作业是自己调用的)。但出于某种原因,我们不想在下游使用默认值的“holder”参数。这可以通过groovy函数来实现:
上游Jenkinsfile -参数
CREDENTIALS_ID
传递给下游下游Jenkinsfile -如果参数
CREDENTIALS_ID
未从上游传递,则函数返回默认值ezykj2lf4#
使用Map,您可以获得另一种级别的灵活性:
这样,就有了更多的选择。