如何使用groovy脚本仅在当前作业完成时触发新的管道作业

1u4esq0p  于 2022-11-01  发布在  其他
关注(0)|答案(1)|浏览(150)

使用groovy脚本如何在构建完成后立即触发另一个管道作业?假设有两个管道A和B,管道A成功完成后,它必须将其参数传递给B,B必须开始运行。(B必须在A终止后才运行)
我尝试使用下面的代码触发构建,这将触发作业B,但作业A仍在运行,直到作业B完全执行

stage('Artifactory_Publish_Job') {
        try {
    def job = build job: 'Jfrog_Artifactory_Publish', parameters: [[$class: 'StringParameterValue', name: 'buildDateString', value: 'default'], [$class: 'StringParameterValue', name: 'WORKSPACE_DIR', value: 'default'], [$class: 'StringParameterValue', name: 'Artifactory_Directory', value: 'default']]
        } catch (any) {

            throw any
          }
        }
vnzz0bqm

vnzz0bqm1#

您可以在后续步骤中运行第二个作业,该步骤在作业完成后执行。此外,您可以将以下选项添加到构建命令propagate: false, wait: false

pipeline {
    agent any
    stages {
        stage('Example') {
            steps {
                echo 'Hello World'
            }
        }
    }
    post { 
        success { 
            echo 'Will run only when successful.'
            build job: 'Jfrog_Artifactory_Publish', parameters: [[$class: 'StringParameterValue', name: 'buildDateString', value: 'default'], [$class: 'StringParameterValue', name: 'WORKSPACE_DIR', value: 'default'], [$class: 'StringParameterValue', name: 'Artifactory_Directory', value: 'default']],  propagate: false, wait: false 
        }
    }
}

相关问题