如何为GitHub Actions可复用工作流添加缓存步骤?
GitHub Actions可复用工作流添加缓存的两种处理方式
无需修改原工作流:在调用端插入缓存步骤
如果只是特定调用场景需要缓存,完全不用改动原可复用工作流,直接在调用它的工作流文件里,给对应的job添加缓存步骤就行:
- 在调用可复用工作流的步骤之前,先加缓存恢复逻辑,示例:
steps: - name: 恢复依赖缓存 uses: actions/cache@v3 with: path: | node_modules key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }} restore-keys: | ${{ runner.os }}-npm- - name: 执行可复用工作流 uses: 你的组织/你的仓库/.github/workflows/reusable.yml@main
- 只要缓存恢复成功,后续可复用工作流里的依赖安装步骤会自动跳过重复下载;缓存会在整个job结束时自动更新,一般不用额外加保存步骤。
需要修改原工作流:统一全局缓存逻辑
如果想让所有调用这个可复用工作流的场景都自动用上缓存,或者缓存路径、触发条件和工作流内部步骤强绑定(比如缓存工作流生成的构建产物),那就直接修改原可复用工作流,把缓存步骤插入到合适位置,示例:
# 原可复用工作流文件 reusable.yml jobs: core-job: runs-on: ubuntu-latest steps: - name: 检出代码 uses: actions/checkout@v4 - name: 恢复构建缓存 uses: actions/cache@v3 with: path: dist key: ${{ runner.os }}-build-${{ github.sha }} - name: 执行构建命令 run: npm run build # 其他原有步骤...
总结
- 仅特定场景需缓存:直接在调用端的job里插入缓存步骤,不用动原工作流。
- 所有调用场景都要缓存:必须更新原可复用工作流,统一植入缓存逻辑。
内容的提问来源于stack exchange,提问作者MadmanLee
相关产品推荐
相关产品推荐

