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

如何在GitHub Action中缓存字符串值并在后续构建中使用

解决方案:保存SHA字符串并在后续构建中复用

原代码存在几个核心问题导致无法复用之前的SHA值:

  • 无论缓存是否命中,都会执行写入步骤覆盖文件,缓存的旧值被直接替换
  • 未正确使用GitHub提供的SHA变量(原代码中的MY STRING是无效变量)
  • 缓存逻辑没有区分"首次写入"和"复用缓存"的场景

修正后的完整配置如下:

- name: Cache SHA value
  id: cache-sha
  uses: actions/cache@v3
  with:
    path: microservices-results
    key: sha-${{ github.ref }}

- name: Write current SHA to file (only if cache miss)
  if: steps.cache-sha.outputs.cache-hit != 'true'
  run: echo "${{ github.sha }}" > microservices-results

- name: Retrieve and use SHA value
  run: |
    SHA_VALUE=$(cat microservices-results)
    echo "The cached SHA value is $SHA_VALUE"
    # 在这里添加后续需要调用SHA值的逻辑

关键调整说明:

  • 添加if: steps.cache-sha.outputs.cache-hit != 'true'条件,只有当缓存未命中时才写入当前SHA,避免覆盖缓存中的旧值
  • 替换无效的MY STRING为GitHub内置变量${{ github.sha }},获取当前提交的SHA值
  • 缓存key保持sha-${{ github.ref }},确保同一个分支的构建复用同一套缓存

这样配置后,首次构建会写入当前SHA并缓存,后续同分支的构建会直接读取缓存中的SHA值,实现跨构建复用的需求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 10:23:13