Rust 的 CI 正在迁移到 GitHub Actions

2020 年 7 月 23 日 · Pietro Albini 代表 基础设施团队

Rust 基础设施团队很高兴地宣布,作为我们去年启动的评估的一部分,Rust 的大部分 CI 正在迁移到 GitHub Actions!虽然我们预计这次变更不会对用户产生任何影响,但这次迁移将显著改善编译器贡献者的体验。

在过去几年里,编译器贡献者的一个主要痛点是等待 PR 合并。我们重视拥有一个始终保持绿色的 master 分支,为确保这一点,我们一次只测试和合并一个 PR,其他已批准的 PR 则在队列中等待。我们的 CI 也非常广泛,有 57 台机器在我们支持的所有平台上构建和测试编译器。在我们以前的系统中,每台构建机需要三到四个小时才能完成。再加上一次只测试一个 PR,这经常导致 PR 在被测试之前需要在队列中等待数天。

加快 CI 设置是基础设施团队的长期目标,而 GitHub Actions 为我们提供了一个改善提交时间(landing time)的绝佳机会:GitHub 提供赞助,提供一个完全托管的私有 8 核虚拟机池来运行我们的构建,这与我们之前使用的 2 核虚拟机相比是一个巨大的改进。GitHub Actions 还提供了我们喜欢 Azure Pipelines 的大部分功能,同时集成了 GitHub 的权限和 UI,这使得这次迁移更加富有成效。

截至 7 月 22 日,rust-lang/rust 仓库中除 macOS 构建外的所有 CI 构建都已完全迁移到 GitHub Actions!目前我们仍在 Azure Pipelines 上运行 macOS 构建,因为我们正在等待 GitHub 修复issue #71988,但我们希望很快将它们迁移到 GitHub Actions。

我们要感谢 GitHub 赞助我们的 CI 构建机,以及 Microsoft 在过去一年提供的 Azure Pipelines 容量。