我有一个 Jenkins 声明性管道,我有兴趣仅当特定环境变量包含特定子字符串(不完全等于它,只是包含它)时才能够执行一个阶段。 有谁知道如何实现它(如果可能的话,也许使用when条件)。
提前致谢, 阿隆
最佳答案
正如您所提到的,在声明性管道中您可以使用 when directive建立执行该阶段的条件。
在 triggeredBy
、branch
和 tag
等内置条件选项中,有一个通用表达式
选项,它允许您运行任何groovy代码并根据您的需要计算相关的 bool 值。
因此,对于您的情况,例如您可以使用 groovy contains
方法来实现您想要的,例如:
pipeline {
agent any
stages {
stage('Conditional Stage') {
when {
expression { return env.MyParamter.contains('MySubstring') }
}
steps {
echo "Running the conditional stage"
}
}
}
}
关于jenkins - 如果环境变量包含特定子字符串,则执行一个阶段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68611679/