如何在 Jenkins 管道的 POST 部分内构建管道作业

时间:2021-04-18 13:03:48

标签: jenkins jenkins-pipeline

我有一个 Jenkins 管道,它在多个步骤中应该有一个最后一步,无论前面步骤的状态如何,都应该执行该步骤。为此,我尝试使用如下所示的 post 部分:

pipeline {
    agent {
        label 'master'
    }

    stages {
        stage('Stage 1') {
            steps {
                build job: 'stage 1 job', parameters: [
                    ...
                ]
            }
        }

        stage('Stage 2') {
            steps {
                build job: 'stage 2 job', parameters: [
                    ...
                ]
            }
        }
    }

    post {
        always {
            build job: "cleanup", parameters: [
                ...
            ]
        }
    }
}

但是,当我尝试执行这样的操作时出现以下错误:

No such DSL method '$' found among steps

问题:是否可以在后期操作中使用构建作业?如果不是,那么什么是实现“清理”工作的好选择总是在最后执行(无论上述阶段的状态如何)

1 个答案:

答案 0 :(得分:1)

是的,可以在 post action 中使用 build a job。这是管道脚本:

pipeline {
    agent any
    stages {
        stage('1') {
            steps {
                
                script {
                         
                echo "Hello"
            }
            
            }
        }
        
    }
    
    post {
        always {
                   build job: 'schedule-job', parameters: [string(name: 'PLATFORM', value: 'Windows')]
  }
}
}

在上面的示例中,我有 schedule-job 接受参数 PLATFORM 并且它会始终运行,无论构建状态如何

输出如下:

enter image description here