我有一个工作流程,它会缓存以下操作的输出结果:
问题是,只有 composer 缓存被命中了,而两个 npm 缓存总是导致 CI 输出中出现消息“未找到输入键的缓存”。
以
但是CI的输出显示:
尽管在缓存条目列表中: 截图还显示,
我做错了什么?
- 使用
composer.lock
的哈希值来安装composer
- 使用
package-lock.json
的哈希值来执行npm ci
- 使用
public/**/*
的哈希值来执行npm run prod
问题是,只有 composer 缓存被命中了,而两个 npm 缓存总是导致 CI 输出中出现消息“未找到输入键的缓存”。
以
npm ci
代码为例,缓存设置和后续使用由以下两步完成:- name: Cache node packages
id: cache-npm-packages
uses: actions/cache@v2
env:
cache-name: cache-node-packages
with:
# npm cache files are stored in `~/.npm` on Linux/macOS
path: ~/.npm
key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('package-lock.json') }}
- if: ${{ steps.cache-npm-packages.outputs.cache-hit != 'true' }}
run: npm ci
但是CI的输出显示:
Cache not found for input keys: Linux-build-cache-node-packages-4370b0e1b9396b576e8db83e048ce2efe36557c8c4bae8492253ef706fc8a4bc
尽管在缓存条目列表中: 截图还显示,
npm run prod
的缓存一直在被重复生成,而没有被重用。我做错了什么?
actions/cache@v3
而不是v2
吗? - Andrii Bodnar