如果具有相同参数的执行已经在进行中,则阻止 Jenkins 构建执行

问题描述 投票:0回答:1

我知道有一个 throttle 并发构建插件 可以防止具有相同参数的两个构建同时运行,但即使使用该设置,Jenkins 仍然会对最终执行的第二个相同构建进行排队。

我找不到一种方法或插件,可以让我在另一个相同的作业已经运行时阻止/丢弃/NotQueue 第二个作业。 有这个,但似乎已被弃用。

偶然发现了另一个问题,这可能适用,但我没有看到可用于管道的插件,只是自由式项目。

有什么建议吗?

jenkins concurrency jenkins-pipeline jenkins-plugins
1个回答
0
投票

构建是如何触发的?如果存在触发它们的提交,您可以通过在管道末尾将提交标记为“已构建”来确保不会为同一提交触发构建。在管道开始时,检查构建是否已经构建,如果是,则中止构建。

如果它以其他方式触发,您唯一的选择是在文件或数据库等文件中记录哪些构建已通过哪些参数进行。然后,在运行构建之前读取此数据源。

Edit:您可以在父作业中使用诸如this之类的函数来获取前几个作业的构建参数。然后,检查这些参数是否在您要触发的构建中包含相同的参数。如果是这样,请不要触发构建。

© www.soinside.com 2019 - 2024. All rights reserved.