結論(の一つ)
start-server-and-test
は使わないで pm2 を使ってバックグラウンド起動する。
具体例
たとえば以下のようにして start-server-and-test
で実行するコードがあったとします。
$ start-server-and-test 'http-server ./out -p 3000' http://localhost:3000 'yarn cypress'
これを pm2 を使って以下のように書き換えて実行します。
$ pm2 start 'http-server ./out -p 3000' --name foobar && yarn cypress && pm2 del foobar
補足
start-server-and-test
がローカル開発環境だと問題なく動作するも、GitHub Actions だと 3000番 の起動を検知できずにタイムアウトするような場合に有効です*1- もとより pm2 を用いればバックグランド系で動作させる環境の構築は簡単になるので、統一してもよいと思います
- CI のためだけに
package.json
に"pm2"
を書くのはためらわれると思うので、CI の YAML 内で直インストールして問題ないでしょう
参考
*1:環境によるようです