【问题标题】:Execute only selected jobs using Jenkins pipe line使用 Jenkins 管道仅执行选定的作业
【发布时间】:2019-03-19 19:04:43
【问题描述】:

我有这条 jenkins 管道,它有多个阶段。在这些阶段内,有多个作业正在执行。 当我构建工作时,我希望有一组复选框,并且管道应该只构建我在管道阶段内检查过的内容。我可以使用任何插件或方法来实现这一点吗?

示例管道代码。

如下例所示,有job_A1、job_B1、job_C1、job_D1、job_A2、job_B2、job_C2和job_D2的作业。如果我单击使用参数构建,它应该会提示我复选框,并且我应该能够检查我想要的任何工作,以便管道将只构建我检查的那些。

提前致谢。

pipeline {
  agent {label 'server01'}
  stages {
    stage('Build 01') {
      steps {

        parallel (
                    "BUILD A1" : {
                        build job: 'job_A1',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD B1" : {
                        build job: 'job_B1',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD C1" : {
                        build job: 'job_C1',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD D1" : {
                        build job: 'job_D1',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
            )
        }
    }

    stage('Build 02') {
      steps {

        parallel (
                    "BUILD A2" : {
                        build job: 'job_A2',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD B2" : {
                        build job: 'job_B2',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD C2" : {
                        build job: 'job_C2',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
                    "BUILD D2" : {
                        build job: 'job_D2',
                            parameters:[
                                string(name: 'PARAM01', value: "$PARAM01"),
                                string(name: 'PARAM02', value: "$PARAM02")
                                ]
                        },
            )
        }
    }

      }
}

【问题讨论】:

    标签: jenkins jenkins-plugins


    【解决方案1】:

    感谢 @mbn217 的回答,但 ExtendedChoice 参数在我的场景中并没有多大帮助。 无论如何,我可以使用布尔参数并使用脚本标签在管道内调用它。

    管道脚本示例

    stage ('BUILD A') {
                steps {
                    script {
                    if (params.get('boolA',true)) {
                    build job: '_build_A', parameters:  [string(name: 'param1', value: "$param1"),string(name: 'param2', value: "$param2")]
                }   else {
                    echo "A is not selected to build"
                    }
                    }
    
                }   
            }
    
            stage ('BUILD B') {
                steps {
                    script {
                    if (params.get('boolB',true)) {
                    build job: '_build_B', parameters:  [string(name: 'param1', value: "$param1"),string(name: 'param2', value: "$param2")]
                }   else {
                    echo "B is not selected to build"
                    }
                    }
    
                }   
            }
    

    【讨论】:

      【解决方案2】:

      您可以使用ExtendedChoiceParameter 来完成您想要的。基本上你也需要使用这个 jenkins 插件来参数化工作名称。 您可以使用屏幕截图中显示的复选框列表

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-01-07
        • 1970-01-01
        • 2019-07-09
        • 1970-01-01
        • 2017-11-11
        • 1970-01-01
        • 2020-12-22
        相关资源
        最近更新 更多