GitHub cache action配置多个缓存路径失效的正确处理方式是什么?
问题根因
你的配置存在两个核心错误:
- 多路径配置多余使用双引号
actions/cache使用YAML块标量(|开头的多行格式)配置多路径时,每一行的路径内容会被直接读取,你额外添加的双引号会被识别为路径的一部分,无法匹配到实际存在的.txt/.md文件,导致缓存写入时空存,恢复后自然找不到对应文件。单路径配置时引号会被YAML单行解析逻辑自动剔除,因此可以正常运行。 - 你粘贴的写入缓存步骤存在语法错误
#- 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
相关产品推荐
相关产品推荐

