🏸
GitHub actionsのseup-node@v3で Dependencies lock file is not found
背景
/frontend/yarn.lock or package-lock.jsonというような構成のとき、
setup-nodeを用いたcache処理を含むGithub actions用yamlを用意した
name: frontend jest test
on:
push:
defaults:
run:
shell: bash
working-directory: ./frontend
jobs:
test:
runs-on: ubuntu-20.04
timeout-minutes: 30
steps:
# checkout
- name: Checkout source code
uses: actions/checkout@v2
# cache
- uses: actions/setup-node@v3
with:
node-version: 16
cache: yarn
ところが、エラーがでる
Found in cache @ /opt/hostedtoolcache/node/16.14.2/x64
/usr/local/bin/yarn --version
1.22.18
/usr/local/bin/yarn cache dir
/home/runner/.cache/yarn/v6
Error: Dependencies lock file is not found in /home/runner/work/app/app. Supported file patterns: yarn.lock
working-directoryを指定しても、rootにyarn.lockまたはpackage-lock.jsonが無いとエラーとなってしまうみたい
解決策
cache-dependency-pathを追加
- uses: actions/setup-node@v3
with:
node-version: 16
cache: yarn
cache-dependency-path: ./frontend/yarn.lock
最後に
簡単一行コマンドでcacheをとってくれて、大変ありがたいですよね。私のテスト系でも数分単位でjobが短くなりました。
Discussion