首页 > 解决方案 > 有没有办法在单个管道中运行多个作业

问题描述

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

标签: jenkinsjenkins-pipeline

解决方案


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

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来确定您的作业路径是否正确 + 它会生成可以传递给该作业的参数(如果已配置)。

在此处阅读更多文档。如果所有三个作业都可以独立运行,建议您并行运行作业以节省时间。


推荐阅读