有没有办法在单个管道中运行多个作业

时间:2019-08-27 13:19:50

标签: jenkins jenkins-pipeline

我已经在Jenkins中配置了多个作业。例如:假设我在詹金斯中配置了A,B和C作业。现在,我必须每次手动运行这三个作业。我想运行一个作业,同时运行这三个作业(A,B,C)。有没有办法在管道作业中实现这一目标?请指教

1 个答案:

答案 0 :(得分:2)

是的,您可以在一个管道中运行所有三个作业。在这里,我们使用一个简短的管道示例,以便用户选择应该运行哪个子作业(默认选中所有复选框):

node {
    properties([
            buildDiscarder(
                    logRotator(
                            artifactDaysToKeepStr: '',
                            artifactNumToKeepStr: '10',
                            daysToKeepStr: '',
                            numToKeepStr: '10')
            ),
            parameters([
                    booleanParam(defaultValue: true,
                            description: 'Select true to include run of Job A',
                            name: 'JOBA'),
                    booleanParam(defaultValue: true,
                            description: 'Select true to include run of Job B.',
                            name: 'JOBB'),
                    booleanParam(defaultValue: true,
                            description: 'Select true to include run of Job C',
                            name: 'JOBC')
            ])
    ])


    try {


        if (params.JOBA == true) {
            stage('Run job A') {
                build job: 'PATHTOJOBA', propagate: true, wait: true
            }
        }

        if (params.JOBB == true) {
            stage('Run job B') {
                build job: 'PATHTOJOBB', propagate: true, wait: true
            }
        }

        if (params.JOBC == true) {
            stage('Run job C') {
                build job: 'PATHTOJOBC', propagate: true, wait: true
            }
        }
--------

PATHTOJOB是您要运行的作业的全名。使用<yourJenkinsHost>/pipeline-syntax/生成脚本,然后使用Sample step> build: Build a job来确定您的作业路径是否正确+如果配置了该脚本,它将生成可以传递给该作业的参数。

了解更多documentation here。如果所有三个作业都可以独立运行,则建议并行运行您的作业以节省时间。

相关问题