我有一个 jenkins 声明性管道,我有兴趣仅当特定环境变量包含特定子字符串(不完全等于它,只包含它)时才能够执行一个阶段。 有没有人知道我如何实现它(如果可能的话,可能使用 when 条件)。
提前致谢, 阿隆
答案 0 :(得分:1)
正如您所提到的,在声明式管道中,您可以使用 when directive 来建立执行阶段的条件。
在 triggeredBy
、branch
和 tag
等内置条件选项中,有通用 expression
选项,它允许您运行任何常规代码并根据需要计算相关的布尔值。
因此,例如,对于您的情况,您可以使用常规的 contains
方法来实现您想要的,例如:
pipeline {
agent any
stages {
stage('Conditional Stage') {
when {
expression { return env.MyParamter.contains('MySubstring') }
}
steps {
echo "Running the conditional stage"
}
}
}
}