小编Tai*_* Ly的帖子

声明性管道-使用when条件,如何做嵌套条件anyOf / allOf / not

我被困在如何正确使用Jenkins语法中提出的嵌套条件。

https://jenkins.io/doc/book/pipeline/syntax/#when

这是我目前的阶段:

stage('Build'){
when{
    anyOf{
        allOf{
            expression{env.BRANCH_NAME != 'master'}
            expression{env.AUTO_BUILD == true && env.BUILD_OPT == snapshot && env.BRANCH_NAME !=~ /feature.+/} 
        }
        expression{env.AUTO_BUILD == false}
    }
}
steps{
    echo env.AUTO_BUILD
    echo env.BUILD_OPT
    echo env.BRANCH_NAME
}
Run Code Online (Sandbox Code Playgroud)

根据我的理解,如果我设置env.AUTO_BUILD = false,那么应该执行此阶段,因为它包含在anyOfOR中,如果我的分支是eg develop和,它将执行AUTO_BUILD = true, BUILD_OPT = snapshot
但是,当我设置时情况并非如此AUTO_BUILD = false。该阶段未执行。我想念什么吗?

jenkins-pipeline jenkins-declarative-pipeline

5
推荐指数
1
解决办法
4155
查看次数