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.
CITATION STYLE
Jin, X., & Servant, F. (2020). A cost-efficient approach to building in continuous integration. In Proceedings - International Conference on Software Engineering (pp. 13–25). IEEE Computer Society. https://doi.org/10.1145/3377811.3380437
Mendeley helps you to discover research relevant for your work.