You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何让GitHub Actions在运行失败后仍保留指定缓存?

GitHub Actions 失败后保留缓存的解决方案

默认情况下,actions/cache@v2 只会在整个作业成功完成时生成新的缓存条目。如果后续测试步骤失败导致作业终止,之前安装的构建工具就不会被缓存下来,这就是你每次调试都要重新等待20分钟的原因。

解决这个问题最直接的方法是升级到 actions/cache@v3(或更高版本),该版本新增了 save-always 参数,可以强制缓存步骤在作业成功或失败时都保存缓存内容。

修改后的缓存配置如下:

- uses: actions/cache@v3 
  name: Cargo Cache      
  with:
    path: ~/.cargo
    key: ${{ runner.os }}-cargo-${{ hashFiles('Cargo.toml') }}
    restore-keys: |
      ${{ runner.os }}-cargo
    save-always: true

关键说明:

  • save-always: true:无论后续步骤是否失败,只要这个缓存步骤执行过,就会将当前 ~/.cargo 目录的内容保存到缓存中。
  • 原配置中 restore-keys 里重复了和 key 完全一致的条目,可删除该重复项,只保留通用前缀 ${{ runner.os }}-cargo,这样在找不到精确匹配的缓存时,会回退到最近的通用缓存。

另外需要确认 ~/.cargo 确实包含了你所有需要缓存的构建工具和依赖,避免缓存路径遗漏导致无效缓存。

内容的提问来源于stack exchange,提问作者McBain

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 06:02:07