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

GitHub cache action配置多个缓存路径失效的正确处理方式是什么?

问题根因

你的配置存在两个核心错误:

  1. 多路径配置多余使用双引号
    actions/cache使用YAML块标量(|开头的多行格式)配置多路径时,每一行的路径内容会被直接读取,你额外添加的双引号会被识别为路径的一部分,无法匹配到实际存在的.txt/.md文件,导致缓存写入时空存,恢复后自然找不到对应文件。单路径配置时引号会被YAML单行解析逻辑自动剔除,因此可以正常运行。
  2. 你粘贴的写入缓存步骤存在语法错误
    #- name: Write cache (Multi path) 行前的#注释符会导致整个缓存写入步骤的YAML结构失效,缓存写入逻辑根本不会执行,你看到的缓存命中实际是之前的无效空缓存。

正确配置方式

直接移除多路径每一行的双引号,同时修正步骤语法即可:

写入工作流参考配置

# Test with multiple paths
- name: Create files
  shell: bash
  run: |
    mkdir subdir
    cd subdir
    printf '%s' "Lorem ipsum" >> a.txt
    printf '%s' "dolor sit amet" >> b.md

- name: Write cache (Multi path)
  uses: actions/cache@v2
  with:
    path: |
      D:/a/cache_test/cache_test/**/*.txt
      D:/a/cache_test/cache_test/**/*.md
    key: test-cache-multi-path

读取工作流参考配置

# Read cache
- name: Get cached file
  uses: actions/cache@v2
  id: get-cache
  with:
    path: |
      D:/a/cache_test/cache_test/**/*.txt
      D:/a/cache_test/cache_test/**/*.md
    key: test-cache-multi-path

- name: Print files
  shell: bash
  run: |
    echo "Cache hit: ${{steps.get-cache.outputs.cache-hit}}"
    cd "D:/a/cache_test/cache_test"
    ls -R
    cat "D:/a/cache_test/cache_test/subdir/a.txt"
    cat "D:/a/cache_test/cache_test/subdir/b.md"

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 18:09:03