【问题标题】:Bamboo stop ongoing build when a new one is scheduledBamboo 在安排新构建时停止正在进行的构建
【发布时间】:2020-01-07 11:41:52
【问题描述】:
如果有多个推送到分支,Bamboo 会为每个推送安排单独的构建,这会在队列上创建冗余。我们只关心我们拉取请求的最新更改的最后一个构建。因此,如果安排了新的构建,是否有任何方法/配置可以取消正在进行的/计划的构建?
我想出了Enable quiet period 选项(静默期允许您在检测到单个提交后延迟构建,每次构建聚合多个提交)。但是,安静期并不是处理队列冗余的最佳方式。
有人知道吗?
【问题讨论】:
标签:
continuous-integration
bitbucket
bamboo
【解决方案1】:
一些事情:
- 在每次提交代码时避免构建在某种程度上是一种反模式。如果您取消正在进行的构建,理论上您可以整天不知道如果传入的提交继续取消构建,那么一天开始时的提交是否会破坏构建。采用这种方法,您将失去拥有持续集成系统的好处。
- 如果您只关心进入主线分支的构建,那么您可以通过转到
Plan Configuration -> Branches 来编辑分支的构建方式。您可以选择手动或“创建拉取请求时”。后者只会在 PR 创建和更新时触发分支构建。
- 您可以通过使用Conditional tasks for Bamboo plugin. 进一步限制正在运行的内容虽然不如不开始构建那么干净,但您可以选择仅在构建主分支时执行耗时的任务,这样可以更快地在分支上执行.
最后,理论上您可以使用REST API 创建您自己的自定义插件/应用程序来停止构建。