【问题标题】:Jenkins: Killing downstream jobs and then restart詹金斯:杀死下游作业,然后重新启动
【发布时间】:2014-02-28 15:01:39
【问题描述】:

所以我有一个 Jenkins 作业,它会在将代码推送到特定环境后启动其他作业以在特定环境中运行测试脚本(例如:将代码推送到 QA,构建测试项目,然后运行所有 QA 测试使用“10 个单独的”测试作业)。

这在大多数情况下都很好用,但是,有时我会“运行太多测试”,因为人们会对特定环境执行大量构建,这意味着我要运行相同测试的多个版本。

我想让它这样当一个作业运行并完成时,如果它的下游作业当前正在运行,它们会停止然后重新启动(我希望测试在最新的构建上运行而不是 2测试作业在 2 个不同的版本上运行)。

有人知道这样做的好方法吗?或者有没有人可以推荐的插件?

【问题讨论】:

    标签: jenkins continuous-integration


    【解决方案1】:

    我可以建议您添加一个包含 HTTP 请求的批处理文件,以取消相关作业的最后构建,然后在下一步中触发该作业。我认为下面的 URL 应该会有所帮助。

    所以在 JOB-A 的 PostBuild 步骤中添加一个条件(单与)步骤来检查 JOB-A 是否成功

    执行批处理命令CANCEL JOB-B

    再次启动JOB-B

    这应该可以解决问题。 (替换 HUDSON_URL)

    HUDSON_URL/job/JOBNAME/lastBuild/stop
    

    显然,如果 Jenkins 需要登录,您可能需要考虑身份验证。

    我还要说,也许在 JOB-B 中,您可能希望设置为 如果上游项目正在构建则阻止,因此如果上游作业尚未运行,它会等待上游作业。

    another reference here:

    希望这会有所帮助。

    【讨论】:

    • 谢谢。我会试试这个,我会尽快回复你:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-11-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多