arrow
返回

Does using Bazel help speed up continuous integration builds?

delete2024-07-19
delete0
PRE
AI
S
Shenyu Zheng *
B
Bram Adams
A
Ahmed E. Hassan
DOI:10.1007/s10664-024-10497-xdelete
delete原文链接
delete原文求助
delete分享
delete收藏
摘要

摘要

En 中文
A long continuous integration (CI) build forces developers to wait for CI feedback before starting subsequent development activities, leading to time wasted. In addition to a variety of build scheduling and test selection heuristics studied in the past, new artifact-based build technologies like Bazel have built-in support for advanced performance optimizations such as parallel build and incremental build (caching of build results). However, little is known about the extent to which new build technologies like Bazel deliver on their promised benefits, especially for long-build duration projects. In this study, we collected 383 Bazel projects from GitHub, then studied their parallel and incremental build usage of Bazel in popular CI services (GitHub Actions, CircleCI, Travis CI, or Buildkite), and compared the results with Maven projects. We conducted 3,500 experiments on 383 Bazel projects and analyzed the build logs of a subset of 70 buildable projects to evaluate the performance impact of Bazel's parallel builds. Additionally, we performed 102,232 experiments on the 70 buildable projects' last 100 commits to evaluate Bazel's incremental build performance. Our results show that 31.23% of Bazel projects adopt a CI service but do not use Bazel in the CI service, while for those who do use Bazel in CI, 27.76% of them use other tools to facilitate Bazel's execution. Compared to sequential builds, the median speedups for long-build duration projects are 2.00x, 3.84x, 7.36x, and 12.80x, at parallelism degrees 2, 4, 8, and 16, respectively, even though, compared to a clean build, applying incremental build achieves a median speedup of 4.22x (with a build system tool-independent CI cache) and 4.71x (with a build system tool-specific cache) for long-build duration projects. Our results provide guidance for developers to improve the usage of Bazel in their projects, and emphasize the importance of exploring modern build systems due to the current lack of literature and their potential advantages within contemporary software practices such as cloud computing and microservice.
Keyword:
Build systems
Continuous integration
Empirical study

期刊

Empirical Software Engineering 封面图
Empirical Software Engineering
IF:
3.6
论文数:
2.0K
被引数:
5.3K

机构

Q
queens university - canada
学者数:
1.8W
论文数: 1.7W
被引数: 29
引用论文

引用论文

A review on ferrofluids with the effect of MHD and entropy generation due to convective heat transfer
err2022-04-19
err0
PREAI
errN. R. Devi; Shivananda Moolya; Hakan F. Öztop; Nidal Abu-Hamdeh; P. Padmanathan; A. Satheesh
err分享
err收藏
On the propagation of low‐frequency fluctuations in the plasma sheet: 2. Characterization of the MHD eigenmodes and physical implications
err2004-03-24
err0
errOAAI
errG. Fruit; P. Louarn; E. Budnik; J. A. Sauvaud; C. Jacquey; D. Le Quéau; H. Rème; E. Lucek; A. Balogh; N. Cornilleau‐Wehrlin
err分享
err收藏
err分享
err收藏
An empirical study of unspecified dependencies in make-based build systems
err2017-04-05
err32
PREAI
errBezemer, Cor-Paul; McIntosh, Shane; Adams, Bram; German, Daniel M.; Hassan, Ahmed E.
err分享
err收藏
A Large-Scale Empirical Study of the Relationship between Build Technology and Build Maintenance
err2014-08-01
err36
PREAI
errMcIntosh, Shane; Nagappan, Meiyappan; Adams, Bram; Mockus, Audris; Hassan, Ahmed E.
err分享
err收藏
学者 查看更多内容