arXivDaily arXiv每日学术速递 周一至周五更新
arXiv周末暂无论文更新,休息一下吧,周末愉快~~
arXiv 2602.02307cs.SE
收藏

理解并检测GitHub Actions中的不稳定构建

Understanding and Detecting Flaky Builds in GitHub Actions

School of Computer Science and Technology, Soochow University(苏州大学计算机科学与技术学院)

Wenhao Ge, Chen Zhang

AI总结:

本文提出基于机器学习的方法,用于检测GitHub Actions中不稳定构建,提升了F1分数20.3%。

摘要:

持续集成(CI)被广泛用于为代码更改提供快速反馈;然而,CI构建结果并不总是可靠。由于非确定性因素,构建可能间歇性地失败,导致不稳定构建,这会削弱开发人员对CI的信任,浪费计算资源,并威胁CI相关实证研究的有效性。在本文中,我们基于1960个开源Java项目重新运行数据,对GitHub Actions中的不稳定构建进行了大规模实证研究。我们的结果表明,3.2%的构建被重新运行,其中67.73%的重新运行构建表现出不稳定行为,影响了1055(51.28%)个项目。通过深入的失败分析,我们识别出15种不同的不稳定失败类别,其中不稳定测试、网络问题和依赖解析问题最为普遍。基于这些发现,我们提出了一种基于机器学习的方法,在作业级别检测不稳定失败。与最先进的基线方法相比,我们的方法将F1分数提高了最高20.3%。

英文摘要:

Continuous Integration (CI) is widely used to provide rapid feedback on code changes; however, CI build outcomes are not always reliable. Builds may fail intermittently due to non-deterministic factors, leading to flaky builds that undermine developers' trust in CI, waste computational resources, and threaten the validity of CI-related empirical studies. In this paper, we present a large-scale empirical study of flaky builds in GitHub Actions based on rerun data from 1,960 open-source Java projects. Our results show that 3.2% of builds are rerun, and 67.73% of these rerun builds exhibit flaky behavior, affecting 1,055 (51.28%) of the projects. Through an in-depth failure analysis, we identify 15 distinct categories of flaky failures, among which flaky tests, network issues, and dependency resolution issues are the most prevalent. Building on these findings, we propose a machine learning-based approach for detecting flaky failures at the job level. Compared with a state-of-the-art baseline, our approach improves the F1-score by up to 20.3%.

机构、总结、中文摘要均由AI分析而来,可能存在错误,请以论文正文为准。

↑