🐫
脱 pnpm/action-setup で GHA のジョブも高速化
TL; DR
-
pnpm, GHA 利用向け - GHA において pnpm/action-setup を利用しなくても
corepackでpnpm使える - 当社プロジェクトの場合、GHA の該当 JOB が 3 分 30 秒 -> 1 分 20 秒 と 処理時間 1/3 程度に劇的短縮
- かなりお手軽にできる改善
背景
ロンラン株式会社 CEO 兼 CTO の武部です。
当社プロジェクトでは、パッケージマネージャに pnpm を利用しています。
GitHub Actions では pnpm/action-setup を利用して pnpm をセットアップしていたのですが、最近は Node.js 16 actions are deprecated な警告が出るようになり、気になっていました。

pnpm/action-setup はメンテ頻度も低く、今後どうしたもんかと思案していたところ、良いアドバイス見つけました。
早速試してみます。
before - after diff
GHA コードの修正。該当箇所の diff は例えば次のとおり。

コードもかなりコンパクトになりました。ポイントは下記です。
-
pnpm/actions-setup退役 -
actions/cacheを利用したnode_modules等のキャッシュも退役。キャッシュ はactions/setup-nodeに任せる -
corepackとactions/setup-nodeによるpnpmのセットアップ- 元々
pnpmのバージョンはpackage.jsonに記載して管理していました
- 元々
修正後の GHA ジョブ実行
何もハマることありませんでした。
GHA の実行ログを確認したところ、初回実行時は pnpm / node_modules 等 の キャッシュ が作成・保存され、二度目の実行時はキャッシュから復元されていることが確認できました。
速度変化
平均して 3 分 30 秒ほど掛かっていた job が、1 分 20 秒ほどに短縮!
| Before | After |
|---|---|
![]() |
![]() |
上記は単発のジョブの例ですが、実際には後続の複数ジョブがあるため、ワークフロー全体での恩恵は大きいです。
どこが変化したのかみてゆきます。actions/setup-node ネイティブのキャッシュ処理が効率良し。合計 1 分 25 秒が 5 秒に。
| Before | After |
|---|---|
![]() |
![]() |
まとめ
- 嬉しさポイント三つ
- GHA 処理時間削減
- GHA コードがスリムに
- コスト 💰 も削減
-
pnpm/action-setupいままでお世話になりました -
corepack活用してゆきましょう




Discussion