如何在 Jenkins 声明性管道 "options" 块中使用条件?
How to use conditions in Jenkins declarative pipeline "options" block?
我想根据全局变量以不同方式配置 buildDiscarder
。目前我有
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
}
但我正在寻找类似
的东西
// BROKEN
options {
if ("${SOME_VAR}" == 'some_val') {
buildDiscarder(logRotator(numToKeepStr: '5'))
} else {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
}
有什么方法可以在 Jenkins 声明式管道中实现这种行为吗?我不认为我可以在这里使用 script
/when
/expression
块,或者至少当我尝试时它不起作用。
我偶然发现的
试试这个:
options {
buildDiscarder(logRotator(numToKeepStr: ("${SOME_VAR}" == 'some_val') ? '5' : '7'))
}
如果您想使用不同的参数,只需将“未使用”参数设置为 '-1'
:
options {
buildDiscarder(logRotator(
numToKeepStr: ("${SOME_VAR}" == 'some_val') ? '5' : '-1',
daysToKeepStr: ("${SOME_VAR}" == 'some_val') ? '-1' : '7'
))
}
我想根据全局变量以不同方式配置 buildDiscarder
。目前我有
options {
buildDiscarder(logRotator(numToKeepStr: '5'))
}
但我正在寻找类似
的东西// BROKEN
options {
if ("${SOME_VAR}" == 'some_val') {
buildDiscarder(logRotator(numToKeepStr: '5'))
} else {
buildDiscarder(logRotator(daysToKeepStr: '7'))
}
}
有什么方法可以在 Jenkins 声明式管道中实现这种行为吗?我不认为我可以在这里使用 script
/when
/expression
块,或者至少当我尝试时它不起作用。
试试这个:
options {
buildDiscarder(logRotator(numToKeepStr: ("${SOME_VAR}" == 'some_val') ? '5' : '7'))
}
如果您想使用不同的参数,只需将“未使用”参数设置为 '-1'
:
options {
buildDiscarder(logRotator(
numToKeepStr: ("${SOME_VAR}" == 'some_val') ? '5' : '-1',
daysToKeepStr: ("${SOME_VAR}" == 'some_val') ? '-1' : '7'
))
}