【发布时间】:2022-02-24 21:13:47
【问题描述】:
我正在使用 Multijob 插件从父作业运行子作业。
当调用子作业时,主作业会等待它完成,然后再继续执行。
我希望父母立即打电话给孩子并继续执行。它也应该在不依赖孩子的情况下以 SUCCESS 结束(孩子正在清洁环境,这项工作很长,如果失败也不应该让父工作失败)
谢谢。
【问题讨论】:
标签: jenkins
我正在使用 Multijob 插件从父作业运行子作业。
当调用子作业时,主作业会等待它完成,然后再继续执行。
我希望父母立即打电话给孩子并继续执行。它也应该在不依赖孩子的情况下以 SUCCESS 结束(孩子正在清洁环境,这项工作很长,如果失败也不应该让父工作失败)
谢谢。
【问题讨论】:
标签: jenkins
找到一种通过 HTTP POST 触发作业的方法:
curl -s -X POST "http://user:pass@jenkins-ip:8080/job/myjob/buildWithParameters?token=mytoken&K1=${K1}&K2=${K2}"
这会发送一个触发器来启动一个作业,并且无需等待即可继续。
注意:需要将子作业配置为使用 http 调用的令牌“远程触发”。
【讨论】:
来自 Jenkins 文档:Pipeline: Build Step
传播(可选) 如果启用(默认状态),则此步骤的结果是下游构建的结果(例如,成功、不稳定、失败、未构建或中止)。如果禁用,则即使下游构建不稳定、失败等,此步骤也会成功;根据需要使用返回值的结果属性。 类型:布尔型
等待(可选) 如果为 true,管道将等待构建步骤的结果,然后再跳转到下一步。默认为真。 类型:布尔型
所以你需要做的就是设置等待为假并传播为假 示例:
build job: "child-job", wait: false, propagate: false
【讨论】: