在 Incredibuild,我们打造加速软件开发的工具,因此我们对自己要求最高标准。这就是 “Dogfooding” 原则——用我们自己的工具完成最繁重的项目。
我们的工程团队为核心产品运行密集的 CI 流水线,包括 Linux 代理和构建缓存。每个流水线都涉及使用 C++ 编译和使用 Clang-Tidy 进行静态分析。这些关键工作每天运行数百次。
我们有一个明确的目标:通过让 CI 流程更快更便宜,大幅提升内部开发者体验(DX)。
我们的 CI 系统被长时间的建造和高昂的成本所困住。基线使用专门且持续的 CI 运行器,依赖本地缓存策略 ,要求运行器全天候保持活跃,×保持缓存温存。这迫使我们为空闲计算支付固定且高昂的成本。
此外,我们的流水线涉及两个主要的并行作业 —— C++编译 (已通过我们的 Incredibuild for C++加速)和深度 Clang-Tidy 的 linting。即使同时运行,Clang-Tidy 也成为关键路径,整体关卡时长高达每轮 24 分钟,严重阻碍了开发者的速度
我们没有简单地重新配置我们的管道,而是用自己的技术来解决问题。我们的分析显示,虽然 C++编译受益于我们现有的分布式工具和缓存机制,但密集的 Clang-Tidy 线条化是关键瓶颈,即使并行运行。
这一认识促使我们投资于一项新能力,并立即在自己身上进行了测试:
Clang-Tidy 会检查每一个文件,甚至是未更改的文件,导致构建时间过长。我们的构建缓存从一开始就设计为高度可扩展性,便于适应新的使用场景。我们决定利用这一基础,直接支持 Clang-Tidy。
通过我们的新建缓存功能解决了 Clang-Tidy 瓶颈,我们终于可以解决底层基础设施的成本问题。我们将基础设施战略从浪费的分布式缓存模式转变为精简、集中式的模式:

这次基础设施变革为我们的预算和工程团队带来了巨大收益。
CI 管道削减 85%

总成本降低:~80%
我们的成本节约来自两个不同的来源
我们致力于将工程师最宝贵的财富——时间还给他们。 通过用自己的技术解决难题,我们确保开发过程尽可能高效、愉快。
想像我们一样大幅缩短 CI 的时间和成本吗?我们的 Incredibuild Build Cache 高度可扩展——就像我们的 Clang-Tidy 解决方案一样,它能处理 Linux、Windows 和 AOSP 构建加速,以及压缩、编码、代码签名、打包等任务。你可以试试我们内部使用的同样技术!
试试 Incredibuild 构建缓存 → https://www.incredibuild.cn/product/build-cache
David Mark, Incredibuild 平台工程与创新副总裁