如何防止两个Jenkins项目/构建同时运行?

jac*_*ckr 29 hudson jenkins

我有两个共享数据库的Jenkins项目.它们不能同时运行.严格来说,除了非并发之外,它们之间没有特定的依赖关系,但是目前我通过运行另一个"下游"来部分地管理这个约束.这大部分时间都有效,但并非总是如此.如果在第二个运行时发生源控制更改,则第一个将再次启动,并且它们将同时运行,并且可能两者都失败了.

这与如何防止某些Jenkins作业同时运行类似但不完全相同区别在于我没有"线程数"问题 - 我在任何时候都只运行任何给定项目的最多一个线程,即使在两个(不同项目)构建的情况下也是如此彼此.这似乎排除了该主题中的所有几个建议.

Jas*_*ger 24

门锁和闩锁插件应该解决您的问题.创建一个锁并让两个作业使用相同的锁.这将阻止作业同时运行.

  1. 在"管理Jenkins:管理插件"中安装插件.
  2. 在"管理Jenkins:配置系统"中定义(提供)锁定的名称.
  3. 对于您要参与排除的每项工作,
    1. 在":Configure:Build Environment"中,选中"Locks",
    2. 并从下拉列表中选择您的锁名称.

  • 在"管理Jenkins:管理插件"中安装插件.在"管理Jenkins:配置系统"中定义(提供)锁定的名称.对于要参与排除的每个作业,在"<JOB>:配置:构建环境"中,选中"锁定",然后从下拉列表中选择锁定名称. (2认同)

gao*_*the 9

锁定资源插件.对我来说简单而且运作良好2016年5月.

安装插件.在Manage Jenkins> Configure System中,转到Lockable Resources Manager.
选择添加可锁定资源.输入字段值:名称,然后单击保存.警告:请勿在"名称"字段中输入空格.

在Jenkins> job_name >配置>常规,选择复选框:此构建需要可锁定的资源.在字段的值中输入名称或名称:资源.

开始构建.在build#number下选择Locked Resources.您应该看到类似的内容:此构建已锁定以下资源:resource_name - resource_description.

启动使用相同资源的其他构建.您将在Jenkins状态/菜单中看到显示作业名称的Build Queue.悬停文本显示"开始于","等待资源resources_list","等待时间".

(也可以使用资源标签/标签)


2.8*_*a_G 5

编辑:以下信息自2014年4月10日起生效

排除插件,https: //wiki.jenkins-ci.org/display/JENKINS/Exclusion-Plugin如果很少有构建使用相同的资源(例如测试数据库),则非常有用。您需要做的就是使用此资源更新所有作业的配置,因此,它们将永远不会并行运行,而是等待其他作业完成。

摘自:http : //www.kaczanowscy.pl/tomek/2012-07/jenkins-plugins-part-iii-towards-continuous-delivery

该插件不会阻止两个或多个作业并行运行。
要进行测试,请对作业1执行此操作

  1. 配置
  2. 在“构建环境”下,选中“添加资源以管理排除项”。
  3. 然后添加->新资源->名称->锁
  4. 在Build-> Add build step下
  5. 关键块开始
  6. 添加构建步骤->添加任何要添加的内容。(添加sleep 15以确保它可以更长的时间检查并发性。)
  7. 添加构建步骤->关键块结束
  8. 对job2重复上述步骤,确保使用相同的锁名“ lock”。
  9. 同时手动创建两个作业。
  10. 在jenkins->排除管理下监视运行进度。