Jenkins或when块中的条件

lp0sw83n  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(126)

我尝试实现一个or条件来执行一个阶段。我寻求的行为是,如果PROJECT_TAG参数是project1project2,则不执行该阶段。
我尝试了以下方法,但似乎不起作用,并且无论如何都执行stage:

stages {
    stage('Cloudformation Init') {
      when {
        expression {params.PROJECT_TAG != 'project1' || params.PROJECT_TAG != 'project2'}
      }

如果我只在when块中定义一个参数,如下所示,它就可以工作,并且如果params.PROJECT_TAG == project1,它就可以绕过那个特定的阶段。

stages {
    stage('Cloudformation Init') {
      when {
        expression {params.PROJECT_TAG != 'project1'}
      }

然而,我确实需要流水线更加灵活,因此需要在when块中实现一个or条件。这可能吗?

xtupzzrd

xtupzzrd1#

试试看:

when {
     anyOf {
         expression {params.PROJECT_TAG != 'project1'}; expression {params.PROJECT_TAG != 'project2'}
     }
 }

相关问题