首页 > 解决方案 > 如何在 Jenkins 工作中包含并行条件

问题描述

例如,我有以下工作,我想使用 when 设置条件,现在它不允许我将 when 放入并行中,我只想在 bool 为真时运行 testusers

                      dir("abc") {

                              parallel (users: {
                              sh "add_user users.json"
                              },
                              when{ ${TEST_USERS} == "true" }
                              testusers: {
                              sh "add_user testusers.json"
                              })

                          }
                       }
                    }

标签: jenkinsjenkins-pipeline

解决方案


when块仅在阶段上运行,因此类似于:

parallel {
    stage('testusers') {
        when {
            environment name: 'TEST_USERS', value: 'true'
        }
        steps {
            sh "add_user testusers.json"
        }
    stage('users') {
        steps {
            sh "add_user users.json"
        }
    }
}

在脚本中,您只需使用一个if块。这看起来像:

parallel ([
    'users': {
        sh 'add_user users.json'
    },
    'testusers': {
        if (TEST_USERS == 'true') {
            sh 'add_user testusers.json'
        }
    }
])

推荐阅读