如果运行一种Jenkins作业,我怎样才能确保只有一个?

eer*_*icc 6 jenkins jenkins-plugins

我的Jenkins工作中有几个集成测试.它们运行在多个应用程序服务器上,我想确保在一个应用程序服务器上同时运行一个集成测试作业.

我需要在我的作业中使用类似标签或变量的东西来创建一组作业,然后配置在该组内的逻辑,同时只能运行一个作业.

我可以使用Exclusion插件吗?有人有经验吗?

mc1*_*rke 6

使用Throttle Concurrent Builds插件.它取代了Locks and Latches插件,并提供了限制特定标签运行的作业数量的功能.

例如:您创建一个项目类别"Integration Test Server A"并将作业绑定到最大并发计数为1,第二个"Integration Test Server B"标签并将其他作业绑定到它,这两个类别只运行一个单个并发构建(假设您已将最大作业数设置为1),该类别中的其他作业将排队,直到"锁定"已清除.

使用此方法,您不必限制任何特定Jenkins实例上可用的执行程序数,并且可以在将来轻松添加其他从属服务器,而无需重新配置所有作业.