一句话:提出 SmartBuildSkip,通过分别预测首次与后续构建失败,在可控延迟下跳过冗余 CI 构建以降低成本。
持续集成(CI)在现代软件工程中被广泛采用,但其构建与测试的计算开销很高,Google 和 Mozilla 的 CI 系统成本可达数百万美元。CI 的价值主要在于让开发者尽早发现缺陷,因此本文希望在不显著延迟失败发现的前提下,减少 CI 执行的构建次数。作者提出 SmartBuildSkip,将一系列构建失败中的首次失败与后续失败分开预测,并允许开发者配置“节省构建”与“尽早观察失败”之间的不同权衡。论文评估了该方法的动机假设、预测能力以及真实场景下的成本节省。在最保守配置中,SmartBuildSkip 中位节省 30% 的构建;在失败构建占比中位为 15% 的项目上,仅引入中位 1 个构建的延迟。
Continuous integration (CI) is a widely used practice in modern software engineering. Unfortunately, it is also an expensive practice --- Google and Mozilla estimate their CI systems in millions of dollars. In this paper, we propose a novel approach for reducing the cost of CI. The cost of CI lies in the computing power to run builds and its value mostly lies on letting developers find bugs early --- when their size is still small. Thus, we target reducing the number of builds that CI executes by still executing as many failing builds as early as possible. To achieve this goal, we propose SmartBuildSkip, a technique which predicts the first builds in a sequence of build failures and the remaining build failures separately. SmartBuildSkip is customizable, allowing developers to select different preferred trade-offs of saving many builds vs. observing build failures early. We evaluate the motivating hypothesis of SmartBuildSkip, its prediction power, and its cost savings in a realistic scenario. In its most conservative configuration, SmartBuildSkip saved a median 30% of builds by only incurring a median delay of 1 build in a median of 15% failing builds.