Lesstep
GitHub Actions・actions/setup-node・2026年11月3日に確認

GitHub Actions:「Dependencies lock file is not found」

actions/setup-node にパッケージマネージャーのダウンロードのキャッシュを頼んでいて、キャッシュのキーはロックファイルのハッシュです。ハッシュを取るロックファイルが見つからず、何もインストールしないうちにステップが失敗しました。探すのは1か所だけ、ワークスペース(GITHUB_WORKSPACE)の一番上です。

見え方

Error: Dependencies lock file is not found in /home/runner/work/app/app. Supported file patterns: package-lock.json,npm-shrinkwrap.json,yarn.lock

1. ロックファイルがサブフォルダーにある

アクションはワークスペースの一番上のファイルを並べるだけで、その下は見ません。defaults.run.working-directory にも従いません。これは run のステップにだけ効く設定です。ファイルの場所を教えます:

- uses: actions/setup-node@v7
  with:
    node-version: 24
    cache: npm
    cache-dependency-path: frontend/package-lock.json

プロジェクトが複数なら、アクションの詳しい使い方のガイドのように1行に1つずつ並べます(cache-dependency-path: |)。一番上の package.json が npm のワークスペースを宣言しているなら、npm はロックファイルを一番上に1つだけ置き、そこでの npm ci もそれを必要とします。pulsartrack では、そういう package.json を一番上に足したのにロックファイルは frontend/ と backend/ にしか無く、3つのジョブが setup-node で失敗しました(pulsartrack #1086)。

2. ロックファイルがリポジトリに無い

ロックファイルをコミットするか、インストールするものが無いなら cache を外します。

3. packageManager の欄でキャッシュが自動で入った

v5.0.0(2025年9月)から、一番上の package.json に "packageManager": "npm@…" か、npm を名指しする devEngines.packageManager があると、cache を書かなくてもキャッシュが始まります。v6.0.0 でこれは npm だけになりました。この欄があってロックファイルが無いリポジトリは、版を上げたところで失敗します。ロックファイルをコミットするか、切ります:

- uses: actions/setup-node@v7
  with:
    node-version: 24
    package-manager-cache: false

README も、強い権限や機密情報に触れるワークフローでは、どのみち package-manager-cache: false にするよう勧めています。

4. コンポジットアクションが自分の Node を用意した

コンポジットアクションの中でも、setup-node が探すのはワークフローを走らせているリポジトリのワークスペースで、アクションのフォルダーではありません。a11ign では、アクションの中の cache: npm つきの setup-node が、npm のプロジェクトでない呼び出し側のリポジトリで毎回失敗しました(a11ign #568)。cache-dependency-path で /home/runner/work/_actions/… の下にあるアクションのロックファイルを指しても助かりません。パスはワークスペースの中でしか照合されず、「Some specified paths were not resolved」で失敗します(agentic-development-workflow #724)。アクション自身の依存には、cache を書かず、package-manager-cache: false にします。

5. 「Some specified paths were not resolved」

cache-dependency-path があると、アクションはそのパスにワークスペースから当たるファイルのハッシュを取り、1つも当たらなければこのメッセージで失敗します。sapphire-sh の共有のワークフローではパスが <working_directory>/package-lock.json で、呼び出し側は npm のワークスペースのメンバーのフォルダーを渡しましたが、そこにロックファイルはありません(github-actions #88)。ファイルのあるパスを書きます。詳しい使い方のガイドには、どの深さのロックファイルにも当たる '**/package-lock.json' の例もあります。

6. ファイルがチェックアウトされていない

見分け方

失敗したジョブを IntelliJ IDEA から見るなら

Pipeline Inbox for GitHub Actions Workflows は、Lesstep が作っている JetBrains IDE(2024.1 以降)のプラグインです。すべてのリポジトリの実行を、ジョブ・ステップと一緒に IDE のツールウィンドウに並べ、いまのブランチの実行はステータスバーに出ます。読むのは無料、失敗したジョブの再実行・キャンセル・ワークフローの実行・デプロイのレビューは Pro(月 US$1.50・30日の無料試用つき)です。

GitHub と GitHub Actions は GitHub, Inc. の商標、IntelliJ IDEA は JetBrains s.r.o. の商標です。このページは GitHub, Inc.・JetBrains のいずれとも提携しておらず、承認も受けていません。

ほかに:「Cache not found for input keys」 · 「Failed to save: Unable to reserve cache with key」 · 「Node.js 20 is deprecated」の警告 · IntelliJ IDEA で使える GitHub Actions のプラグインの比較 · English