以下是我目前的情况: 我们有许多奴隶和许多(许多)建设者的buildbot。每个从站一次只能运行一个构建。我们有夜间或提交时触发的建设者。我们没有大量的奴隶,构建需要几个小时才能完成。
以下是我尝试实现的目标: 我们希望当构建器已经运行并且它再次被触发时,它会保持挂起状态,直到它的上一个实例完成为止,即使有一个可用的从属服务器。这将允许其他建筑商在此期间运行。
我已阅读Buildbot running sequential builders after they're finished,但这与我的问题无关。
我已经读过关于联锁但我不确定它对我的情况有帮助。 http://docs.buildbot.net/current/manual/cfg-interlocks.html
我知道mergeRequests
参数并使用它,但这仅适用于待定构建,而不是将构建从挂起到运行的机制,或者甚至更早-triggered build是在没有待处理的情况下启动的。
有谁知道如何实现这个目标?
答案 0 :(得分:0)
你走在正确的道路上。你想要一个" MasterLock"这是全局的(而" SlaveLock"是按奴隶评估的。)
my_lock = locks.MasterLock("some name", maxCount=1))
然后在你的建造者身上:
BuilderConfig(..., locks=[my_lock.access('exclusive')])