首页 > 解决方案 > 当布尔参数为假时,Jenkins 跳过阶段

问题描述

当布尔参数条件 API1、API2、API3 为 false 时,我想跳过 jenkins 中的阶段。下面试过了。我收到错误 Not a valid stage section definition: “if (params.API1== false || params.API2 == false || params.API3== false )

    booleanParam(
       name: 'API1',
       defaultValue: false,
    )
    booleanParam(
        name: 'API2',
        defaultValue: false,
    )
    booleanParam(
        name: 'API3',
        defaultValue: false,
    )
     choice(
        name: 'Env',
        choices: [ 'uat', 'test']
   )
    }
    
    stage ('docker build') {
            if (params.API1 == false || params.API2 == false || params.API3 == false ) {
        agent { xxxx }
        when {
                expression { params.Env == 'uat' || params.Env == 'test' }
            }
            steps 
            {
                unstash 'xxxx'
            script {
                    my script
            }
        }
      }
    }

标签: jenkinsjenkins-pipelinejenkins-groovy

解决方案


您的舞台可能如下所示:


    stage ('docker build') {
        agent { xxxx }
        when {
            beforeAgent true  // don't wait for agent to evaluate conditions
            allOf {
                expression { params.API1 == false || params.API2 == false || params.API3 == false }
                expression { params.Env == 'uat' || params.Env == 'test' }
            }
        }
        steps 
        {
            unstash 'xxxx'
            script {
                    my script
            }
        }
    }

推荐阅读