问题描述
我们有Bamboo从git构建C ++库。每个库包含其他库作为git子模块。乔布斯都执行类似的步骤:签出存储库,更新子模块,编译,链接和执行单元测试等。在此阶段,我们不保留构建的工件,但这可能是我们将来要做的。构建代理的配置不是很好,因此构建耗时1-2小时的情况并不罕见。
问题是:
- 当我们强制清理每个构建时-它在代理的HDD上节省了大量空间,但是执行构建需要很长时间。大部分时间都在C ++编译和链接中,因此它已经很好地利用了git缓存。
- 如果我们不强制清理内部版本,则可以节省大量时间(减少5-10分钟,即节省90%),但会占用大量磁盘空间。我们最近在我们的版本中包含了更多的库,现在经常会用光磁盘空间。
一种选择是创建更多的构建代理,这将允许并行进行构建,但不会单独加快构建速度。如果我使用多个构建代理正确理解它,那么每次都不执行干净的构建是没有意义的,因为您不会预先知道要在哪个代理上运行该构建,因此可能会选择其他代理在每个版本上进行,基本上进行了完整的检出和构建,但是通过在所有代理之间保留多个副本来浪费空间。
我已经遍历了Atlassian用户社区,却没有找到如何最好地管理磁盘使用和时间之间的折衷的真正策略。答案都很简单,如果磁盘空间不足,请使用干净的版本-现在我有很多磁盘空间,但是所有版本都需要一定的时间。
一个选项将能够执行以下操作
- 进行增量构建(即不强制清理)
- 当磁盘空间超过某个百分比(例如80%)时
- 删除未使用的最旧的作业集(即30天)
这现实吗?如何实现?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)