release-github-actions
release-github-actions copied to clipboard
`npm ci` および `npm install` が "install" コマンドとして扱われない
Describe the bug: バグの概要
npm ci コマンドはnpm installコマンドと同じような動きをしますが、package-lock.jsonに基づいてより厳密にパッケージのインストールを行います。
そのため、GitHub ActionsのNode.jsテンプレートにもあるように、CI/CD環境でnpm installの代わりとして使われています。
しかしながら、このactionでは、BUILD_COMMANDにnpm ciを含めても"install"コマンドとして扱われません。
そのため、不要であるはずのnpm install(およびnpm install --production)コマンドがビルド時に追加されてしまいます。
--ignore-scriptsを明示的に指定する必要がある場合[^1]に、この挙動はビルドプロセスに影響を与えます。
[^1]:huskyを利用している場合など
To Reproduce: 再現手順
- 以下のように
npm ciまたはnpm installを含むBUILD_COMMANDを指定する
steps:
- uses: technote-space/[email protected]
with:
BUILD_COMMAND: npm ci --ignore-scripts && npm run build
Expected behavior: 期待する動作
npm ciをBUILD_COMMANDコマンドに含む場合も、デフォルトのnpm installを実行しない
Screenshots: スクリーンショット
- エラー発生時のログ
- 余計な
npm install --productionコマンドが実行されてしまったことで、huskyコマンドがないエラーが発生している
- 余計な
Operating environment: バグが発生した環境
- technote-space/[email protected]
- ubuntu-latest hos runner
:raised_hands: Thanks for opening your first issue here! Be sure to follow the issue template!
hasInstallCommandの条件式が原因だと思われますが、現状では仮にnpm installを指定しても"install"コマンドとして扱われません。
(npmの場合はnpm run installと指定しないとhasInstallCommandがtrueにならない)
@technote-space Any updates?