【问题标题】:How to finish build the whole pipeline before running a new job in Jenkins?如何在 Jenkins 中运行新工作之前完成整个管道的构建?
【发布时间】:2021-10-26 16:44:40
【问题描述】:

这是一个与 Jenkins 相关的问题。

我有一个 Jenkins 集群,其中包含 10 个 Windows 从属节点,它们应该运行相同的管道(假设它是工作 A->B->C)

假设我有新的作业 A 在队列中等待,而从节点刚刚完成作业 A 并将触发作业 B,我如何确保该从节点将首先运行作业 B 而不是运行这个长时间-等待时间的工作A。

非常感谢您的帮助。


我尝试使用 Priority Sorter Plugin 的解决方案,我将作业 C 设置为最高优先级,B 第二,A 设置为最低优先级。

我希望在选择要运行的新作业时,调度程序会以更高的优先级调度作业(在上述情况下,应该是 B 而不是 A)

然而这个解决方案失败了,因为调度器会在新触发的作业(B)被添加到队列并重新排序之前将作业(A)调度到从节点。

【问题讨论】:

    标签: jenkins continuous-integration


    【解决方案1】:

    即使没有Priority Sorter Plugin,您也应该能够通过以下方式阻止开始工作A

    • 在作业A 配置中设置必要时执行并发构建
    • 添加额外的构建步骤在其他项目上触发/调用构建并设置阻止直到触发的项目完成构建

    您可以以同样的方式配置作业BC...

    【讨论】:

    • 非常感谢,在触发的项目完成构建之前我找不到 Block,它是否包含在任何插件中?
    • 实际上我使用的是 Jenkins Parameterized Trigger 插件,但在触发的项目完成构建之前我找不到 Block。
    • 仔细检查您是从 Build Step 触发的,而不是 Post-Build
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多