写点什么

让 Rust 的 CI 加速 2~3 倍速度

作者:非凸科技
  • 2022 年 5 月 05 日
  • 本文字数:436 字

    阅读完需:约 1 分钟

作者花了几天时间调整 Nushell 的 GitHub Actions CI pipeline,结果得到了回报: CI 过去大约需要 30 分钟,现在接近 10 分钟。

主要通过以下手段加速:

(1)使用 Rust cache

GitHub 构建运行器很慢,但 GitHub 为每个 repo 提供了 10GB 的缓存空间。rust-cache 利用了这一点,会在 CI 运行中为你的构建依赖项缓存临时文件,所以如果你有很多依赖项,就可能会看到性能大幅提升。

(2)将 build 和 test 分开

在“测试模式”中构建输出可能不同,这对缓存有影响。另外,并行运行构建和测试更快,GitHub 免费提供了 20 个构建运行器,不妨使用它们。

(3)在 cargo build 之后再运行 clippy

之前我们在 cargo build 之前运行 Clippy。只要改变他们的订单,每次测试就会减少 5 分钟。看起来 Clippy 可以重用来自 cargo build 的构建工件,但反之则不行。

(4)使用 cargo nextest

在 CI 中安装它非常简单,而且通常比 cargo test 更快。我们并没有从中看到巨大的好处(也许 30-40 秒更快?),但这是因为我们的 CI 时间主要是由编译控制的;YMMV 取决于您的代码基础和测试套件。


用户头像

非凸科技

关注

追求卓越算法,赋能量化交易 2022.02.22 加入

专注于智能算法交易领域的研究和开发

评论

发布
暂无评论
让 Rust 的 CI 加速 2~3倍速度_rust_非凸科技_InfoQ写作社区