【发布时间】:2023-02-24 10:21:35
【问题描述】:
我正在使用 GitHub 操作体验 CI。
我在每个 CI 上安装依赖项时遇到问题,发现我可以使用 actions/cache 解决这个问题。
这是我的 action.yaml 部分
- name: Cache npm dependency
uses: actions/cache@v3
id: npm-cache
with:
path: ~/.npm
key: ${{ runner.os }}-npm-${{ hashFiles('**/package-lock.json') }}
restore-keys: |
${{ runner.os }}-npm-
- if: steps.npm-cache.outputs.cache-hit != true
name: Install Dependency
run: |
echo 'npm cache missed'
npm ci
并在Cache npm dependency 步骤中恢复缓存。
Cache restored successfully
Cache restored from key: Linux-npm-...
但它总是在“安装依赖项”步骤中重新安装依赖项。
Run echo 'npm cache missed'
echo 'npm cache missed'
npm ci
shell: /usr/bin/bash -e {0}
npm cache missed
> nodemon@2.0.16 ...
> node bin/postinstall || exit 0
added 661 packages in 19.862s
结果,缓存变得毫无意义。 我错过了什么或做错了什么?
【问题讨论】:
-
除非有充分的理由,否则请将输入
cache: npm与action/setup-node操作一起使用并删除您的自定义缓存。 -
@rethab 我试过了,我得到了同样的结果。
-
你能创建一个minimal reproducer吗?
-
@rethab 我通过像这样修改它来解决它:
!= true!= 'true':)但我的意图是'node_module'缓存,文档中不推荐这样做,所以我正在努力解决这个问题。 '不建议缓存 node_modules,因为它可以跨 Node' 版本并且不能与 npm ci 链接一起使用:github.com/actions/cache/blob/main/examples.md#node---npm -
你还不能用
cache: npm吗?
标签: github github-actions