Jenkins Pipeline中两个anyOf条件块如何配置AND逻辑实现同时满足才执行任务
Jenkins Pipeline 多条件组AND组合解决方案
你需要的效果可以通过显式用allOf条件组合器包裹两个anyOf块实现,也可以直接使用when块的默认隐式AND规则,以下是具体说明:
最优写法(可读性更高)
显式用allOf声明逻辑与关系,后续维护时无需记忆隐式规则,代码语义更明确:
stage("Spring App") { when { allOf { // 第一个条件组:任意满足即可 anyOf { environment name: 'key1', value: 'true' environment name: 'key2', value: 'true' } // 第二个条件组:任意满足即可 anyOf { environment name: 'key3', value: 'string1' environment name: 'key4', value: 'string2' environment name: 'key5', value: 'string3' } } } steps { // 此处写你的阶段执行逻辑 } }
逻辑说明
allOf为逻辑与组合器:要求内部所有子条件全部返回true时,整体条件才成立anyOf为逻辑或组合器:只要内部任意一个子条件返回true,该条件组就成立- 组合后即可实现:第一个条件组成立 且 第二个条件组成立时,才触发当前stage执行
补充说明
你当前的原有代码逻辑上已经符合需求,Jenkins声明式Pipeline的when块下,多个并列条件默认就是隐式的AND关系,只是显式写allOf的语义更清晰,更推荐使用。
内容的提问来源于stack exchange,提问作者selin
相关产品推荐
相关产品推荐

