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

Github Actions如何实现不同分支工作流运行之间的依赖缓存?

问题原因

  • GitHub Actions 缓存默认存在访问范围限制:普通功能分支生成的缓存,仅允许同一分支的后续工作流、该分支提交的PR关联工作流读取,其他分支/其他PR的工作流默认无法读取;只有默认分支(通常是master/main)生成的缓存,支持所有工作流读取。
  • 你的现有配置存在语法错误:cache步骤的key配置末尾多了一个多余的闭合大括号},会导致key解析异常,也是缓存匹配失败的原因之一。

解决方法

  1. 先修正配置语法错误,删除key末尾多余的大括号
  2. 可以新增restore-keys配置,指定和依赖文件绑定的匹配规则,只要requirements.txt无变更,就能优先匹配到对应缓存
  3. 先在默认分支跑一次工作流生成初始缓存,后续所有分支只要requirements.txt没有改动,都可以直接复用这个缓存,不需要重新安装依赖。如果你的默认分支是master,可以临时去掉工作流中branches-ignore里的master规则,跑一次CI生成缓存后再还原配置即可。

修正后的工作流配置参考

name: ci

on:
  pull_request:
    types: [opened, synchronize]
    branches-ignore:
      - "master"
      - "staging"

  push:
    branches-ignore:
      - "master"
      - "staging"

jobs:
  run-tests:
    name: Run tests
    runs-on: ubuntu-latest

    steps:
      - name: Set up Python 3.8
        uses: actions/setup-python@v2
        with:
          python-version: 3.8

      - name: Checkout repository
        uses: actions/checkout@v2

      - name: Cache dependencies
        uses: actions/cache@v3 # 可保留v2版本,v3对跨分支缓存的兼容性更稳定
        with:
          path: ${{ env.pythonLocation }}
          key: ${{ env.pythonLocation }}-${{ hashFiles('requirements.txt') }}
          restore-keys: |
            ${{ env.pythonLocation }}-

      - name: Install dependencies
        run: |
          python -m pip install --upgrade pip
          python -m pip install -r requirements.txt

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 10:27:03