continuous-integration - Bamboo 在安排新构建时停止正在进行的构建
问题描述
如果有多个推送到分支,Bamboo 会为每个推送安排单独的构建,这会在队列上创建冗余。我们只关心我们拉取请求的最新更改的最后一个构建。因此,如果安排了新的构建,是否有任何方法/配置可以取消正在进行的/计划的构建?
我想出了Enable quiet period
选项(安静期允许您在检测到单个提交后延迟构建,每次构建聚合多个提交)。但是,安静期并不是处理队列冗余的最佳方式。
有人知道吗?
解决方案
一些东西:
- 每次提交代码时避免构建在某种程度上是一种反模式。如果您取消正在进行的构建,理论上您可以整天不知道如果传入的提交继续取消构建,那么一天开始时的提交是否会破坏构建。采用这种方法,您将失去拥有持续集成系统的好处。
- 如果您只关心进入主线分支的构建,那么您可以通过转到
Plan Configuration -> Branches
. 您可以选择手动或“创建拉取请求时”。后者只会在创建和更新 PR 时触发分支构建。 - 您可以使用Bamboo 插件的条件任务进一步限制正在运行的内容。 虽然不如不开始构建那么干净,但您可以选择仅在构建主分支时执行耗时的任务,这将允许在分支上更快地执行。
最后,理论上您可以使用REST API创建您自己的自定义插件/应用程序来停止构建。
推荐阅读
- kivy - Buildozer 在为 android 打包时没有使用正确的 kivy 版本
- c# - 为什么并行访问和更改 System.Collections.Generic.Dictionary 不会导致异常/崩溃?
- google-drive-api - 导出 Google 表单
- swift - Swift 在协议上具有可比性
- dart - Dart 编程语言中的真值和假值
- json - AWS CloudFront - 将参数导入为跨云端堆栈的“全局”参数
- python - 将函数用作视图和 celery 任务
- javascript - 尽管添加了课程,但动画不起作用
- c# - Entity Framework Core 中 TimeSpan 的总和
- java - 声明一个静态 Java lambda 以便重用更有效吗?