1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

pnpm/action-setupをv6に上げる際はv6.0.3以降を使おう

1
Last updated at Posted at 2026-04-21

はじめに

pnpmを使うプロジェクトで、Dependabot や Renovate を使っていると、pnpm/action-setup を v5 から v6 に上げる PR が飛んできているかもしれません。

pnpm v11への対応しかリリースノートには書かれていませんが、このPRのCIがなぜか落ちていたり、マージしたらローカルで再現しない挙動をしている方がもしかしたらいるかもしれません。

本記事では、何が起きるのか・なぜ起きるのか・どう対応すればいいのかを解説します。

結論を先に: v6.0.3 で修正済みです。pnpm/action-setup@v6 を使っていれば問題はなさそうです。v6.0.0 や v6.0.1 にピン留めしている場合はアップデートしてください。

※ v6.0.3 は GitHub 上で prerelease タグが付いていますが、v6 タグが v6.0.3 を指しているため、@v6 で利用できます。

何が起きるか

action-setup v6.0.0〜v6.0.1 では、version10 を指定しても pnpm v11 beta がインストールされます

- uses: pnpm/action-setup@v6
  with:
    version: 10  # 10を指定しているのに...
Run pnpm --version
11.0.0-beta.4-1  # v11 が入る

具体的にどんなエラーが出るか

engines.pnpm を設定しているプロジェクト

package.json で pnpm のバージョンを制約しているプロジェクトでは、インストール時にエラーになります。

ERR_PNPM_UNSUPPORTED_ENGINE  Unsupported environment (bad pnpm and/or Node.js version)

Your pnpm version is incompatible with "/home/runner/work/my-app/my-app".

Expected version: 10
Got: 11.0.0-beta.4-1

pnpm version コマンドを使っているワークフロー

pnpm v10 では pnpm versionpnpm login などのコマンドを npm にパススルーしていましたが、v11 ではこのパススルーが削除されました。そのため、以下のようなコマンドが失敗します。

- run: pnpm version patch --no-git-tag-version
ERR unknown option --no-git-tag-version

その他の v10 → v11 の breaking changes

意図せず v11 が使われることで、v10 → v11 間の breaking changes に起因する予期しないエラーが発生する可能性があります。

なぜ起きるのか

action-setup v6.0.0 は pnpm v11 のサポートを追加したバージョンです。

問題は、アクション内部の動作にありました。action-setup は以下のように pnpm をセットアップします。

  1. bootstrap: まず v11 のバイナリを PNPM_HOME/pnpm に配置
  2. self-update: 指定バージョン(例: v10)を PNPM_HOME/bin/pnpm にインストール

しかし、PATH への追加順が原因で PNPM_HOME/pnpm(v11)が PNPM_HOME/bin/pnpm(v10)より優先されてしまい、self-update で正しいバージョンをインストールしても v11 が使われ続けていました。

この問題は #225 で報告され、#230 で PATH の優先順位を修正することで解消されました。

対応策

@v6 を使っている場合(多くの人はこちら)

何もしなくて大丈夫です。

pnpm/action-setup@v6 は現在 v6.0.3 を指しており、修正が含まれています。

- uses: pnpm/action-setup@v6  # v6.0.3 が使われる → 問題なし
  with:
    version: 10

すでに v6 にアップデート済みで CI が壊れていた場合も、v6 タグが v6.0.3 に更新されているため、ワークフローを再実行すれば直ります。

特定バージョンにピン留めしている場合

v6.0.0 や v6.0.1 にピン留めしている場合は、v6.0.3 以降に更新してください。
v6.0.2で該当の不具合は治りますが、他にも不具合があるので最新を使うのがいいでしょう。

- - uses: pnpm/action-setup@v6.0.0
+ - uses: pnpm/action-setup@v6.0.3

まだ v5 のままの場合

v5 では問題は発生しません。v6 に上げるタイミングは自由ですが、今上げても問題ありません。
ただし、細かいバージョンまで指定しているひとはv6.0.2以降を指定するようにしましょう。

まとめ

今回はたまたまローカルで再現しない不具合を発見し、調査した結果をまとめました。
v6.0.0以降にあげようとしている人の参考になれば幸いです。

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?