我正在使用GitHub Actions来构建我的TypeScript项目。每次运行操作时,我需要等待3分钟才能安装所有依赖项。
有没有办法缓存yarn的依赖项,以便构建时间更快?
我尝试了这个:
- name: Get yarn cache directory path
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- uses: actions/cache@v1
id: yarn-cache # use this to check for `cache-hit` (`steps.yarn-cache.outputs.cache-hit != 'true'`)
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: ${{ runner.os }}-yarn-${{ hashFiles('**/yarn.lock') }}
restore-keys: |
${{ runner.os }}-yarn-
- name: Install yarn
run: npm install -g yarn
- name: Install project dependencies
run: yarn
但是构建时间仍然相同。
yarn
本身就能够很好地检测出是否需要更新依赖项。例如,在本地第二次运行yarn
安装时,它会在不到1秒的时间内完成。我认为在任何情况下都不应该跳过yarn
步骤。 - mvlabatnode_modules
可能会损坏。每次重新运行yarn
并让yarn
决定是否从缓存中获取文件更加安全(假设yarn
在使用缓存之前会尝试验证缓存)。 - Quang Lam