You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用Groovy脚本在当前流水线完成后触发新流水线并传递参数

解决Jenkins流水线A触发B后持续等待的问题

你当前的问题是:使用build步骤触发流水线B时,流水线A会一直阻塞运行,直到B执行完毕才终止,不符合“A执行成功并终止后触发B”的需求。

问题原因

Jenkins Pipeline的build步骤默认是阻塞式执行的,会等待目标流水线(B)完成所有流程后,才会继续当前流水线(A)的后续逻辑。

解决方法

在build步骤中添加wait: false参数,让流水线A触发B后立即释放资源、终止运行,无需等待B的执行结果。

修改后的代码如下:

stage('Artifactory_Publish_Job') {
    try {
        def job = build(
            job: 'Jfrog_Artifactory_Publish',
            wait: false, // 关键参数:设置为false即不等待目标流水线完成
            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
    }
}

补充说明

  • 要确保流水线A是执行成功后才触发B,需保证这个stage是在A的所有核心执行步骤都成功完成后才运行,避免A中途失败却误触发B。
  • 若后续需要追踪流水线B的执行状态,不能依赖这个非阻塞式build的返回值,需通过Jenkins API或其他方式查询(当前需求下无需此操作)。

内容的提问来源于stack exchange,提问作者DevOps__1903

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 18:55:24