Continuous Integration (CI) provides early feedback by automatically building software, but long build durations can hinder developer productivity. CI services offer caching mechanisms to speed up builds by reusing infrequently changing artifacts, yet little is known about how caching is adopted in practice and what challenges it entails. In this paper, we conduct a large-scale empirical study of CI caching in Travis CI, analyzing 513,384 builds from 1,279 GitHub projects. We find that only 30% of projects adopt CI caching, and early adoption is strongly associated with project maturity, such as more dependencies, more commits, and longer CI lifespans. To understand why many projects do not adopt caching, we submitted pull requests enabling caching in non-adopting projects, and nearly half were accepted or merged. Developer feedback suggests that non- or late adoption mainly stems from limited awareness of CI caching support. We also examine cache maintenance and identify five common activities, performed by 24% of cache-enabled projects. Although one-third of projects see substantial build-time reductions, cache uploads occur in 97% of builds, and 33% of projects contain stale cached artifacts. Finally, our analysis of reported caching issues shows developers mainly struggle with corrupted or outdated caches or request broader caching features. Overall, CI caching does not help all projects, needs ongoing maintenance, and is more complex in practice than many developers expect.


翻译:持续集成(CI)通过自动构建软件提供早期反馈,但过长的构建时间会阻碍开发者的工作效率。CI服务提供缓存机制,通过复用不频繁变更的构件来加速构建,然而关于缓存在实践中如何被采用及其带来的挑战,目前所知甚少。本文对Travis CI中的CI缓存进行了大规模实证研究,分析了来自1,279个GitHub项目的513,384次构建。我们发现仅有30%的项目采用了CI缓存,且早期采用与项目成熟度(如更多依赖项、更多提交、更长的CI生命周期)密切相关。为理解许多项目未采用缓存的原因,我们向未采用缓存的项目提交了启用缓存的拉取请求,其中近一半被接受或合并。开发者反馈表明,未采用或延迟采用主要源于对CI缓存支持的认识有限。我们还考察了缓存维护情况,识别出五种常见活动,由24%启用缓存的项目执行。尽管三分之一的项目实现了显著的构建时间缩减,但97%的构建中发生了缓存上传,且33%的项目存在陈旧的缓存构件。最后,我们对已报告的缓存问题进行分析,发现开发者主要面临缓存损坏或过时的问题,或需要更广泛的缓存功能。总体而言,CI缓存并非对所有项目都有帮助,需要持续维护,且在实践中比许多开发者预期的更为复杂。

0
下载
关闭预览

相关内容

扩散模型中的缓存方法综述:迈向高效的多模态生成
专知会员服务
8+阅读 · 2025年10月23日
组合图像检索的全面综述
专知会员服务
17+阅读 · 2025年3月2日
持续学习的研究进展与趋势
专知会员服务
46+阅读 · 2024年3月8日
《图持续学习》综述
专知会员服务
44+阅读 · 2024年2月13日
【综述】持续学习与预训练模型综述
专知会员服务
54+阅读 · 2024年1月30日
《用于 DevSecOps 的自动化数据》26页报告,CMU
专知会员服务
29+阅读 · 2023年9月17日
持续学习:研究综述
专知会员服务
83+阅读 · 2023年1月30日
【NeurIPS2022】解决持续学习问题的理论研究
专知会员服务
31+阅读 · 2022年11月7日
占坑!利用 JenKins 持续集成 iOS 项目时遇到的问题
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
16+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
4+阅读 · 2014年12月31日
VIP会员
相关VIP内容
扩散模型中的缓存方法综述:迈向高效的多模态生成
专知会员服务
8+阅读 · 2025年10月23日
组合图像检索的全面综述
专知会员服务
17+阅读 · 2025年3月2日
持续学习的研究进展与趋势
专知会员服务
46+阅读 · 2024年3月8日
《图持续学习》综述
专知会员服务
44+阅读 · 2024年2月13日
【综述】持续学习与预训练模型综述
专知会员服务
54+阅读 · 2024年1月30日
《用于 DevSecOps 的自动化数据》26页报告,CMU
专知会员服务
29+阅读 · 2023年9月17日
持续学习:研究综述
专知会员服务
83+阅读 · 2023年1月30日
【NeurIPS2022】解决持续学习问题的理论研究
专知会员服务
31+阅读 · 2022年11月7日
相关基金
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
1+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
16+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
2+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2015年12月31日
国家自然科学基金
0+阅读 · 2014年12月31日
国家自然科学基金
4+阅读 · 2014年12月31日
Top
微信扫码咨询专知VIP会员