💡
原文英文,约1000词,阅读约需4分钟。
📝
内容提要
Pinterest通过运行时感知的测试分片策略和内部测试平台,将Android持续集成的构建时间缩短了36%以上。新平台利用历史执行数据优化测试分配,显著提高了构建效率,减少了反馈延迟。
🎯
关键要点
- Pinterest通过运行时感知的测试分片策略和内部测试平台,将Android持续集成的构建时间缩短了36%以上。
- 之前,Pinterest的Android CI管道因测试套件按包名分割而导致构建时间缓慢且不可预测。
- Pinterest开发了PinTestLab,一个在EC2实例上运行Android模拟器的内部测试基础设施,提供了对调度和环境设置的完全控制。
- 核心创新是使用历史测试执行数据的运行时感知分片算法,根据预期持续时间而非数量对测试进行分组。
- 该方法将最快和最慢分片之间的时间差缩小到几十秒,减少了约55%的最慢分片运行时间。
- Pinterest的运行时感知分片逻辑在Buildkite中运行,确保CI的可靠性,即使在基础设施出现问题时也能回退到轮询分配。
- 该工作展示了CI优化的两个趋势:利用历史数据进行工作负载平衡和向内部编排转变。
- 其他公司如Dropbox和Shopify也采用了类似的方法,通过历史数据和自定义算法提高CI性能。
- 这些案例表明,使用历史执行数据平衡工作负载、最大化并行性和避免不必要的测试执行是现代软件开发中的最佳实践。
➡️