🏸

GitHub actionsのseup-node@v3で Dependencies lock file is not found

2022/04/04に公開

背景

/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