タイトルのとおりです。
"wait-on": "^2.1.0",
"webpack": "^4.2.0",
"webpack-cli": "^2.0.13",
"webpack-dev-server": "^3.1.1"
TL;DR
HEAD の代わりに GET を使いましょう。
やりたかった事としては、テスト実行時に webpack-dev-server でサーバーを立ち上げて、ready になったら後続の処理を行うというもの。
npm に wait-on というモジュールがあり、これを使ってサーバーが準備完了となるのを待っていた。
waitOn(
{
resources: ["http://localhost:9999"]
},
err => {
if (err) return reject(err);
resolve();
}
);
こんな感じ。
ローカルではこれでうまく行っていたが、travis で実行すると wait-on のところでタイムアウトになっていた。
travis に ssh デバッグして curl したりしてもちゃんと返ってきているのでなんだろうと。
wait-on の実装を読むとデフォルトでは HEAD リクエストで完了を待っている模様。
試しに curl で HEAD を送ると見慣れない終了コードが返ってきていて、これで失敗してタイムアウトタイムアウト気づく。
wait-on は http://
だと HEAD リクエストを送るが http-get://
なら GET リクエストを送って待ってくれるみたいなので、これを使って事なきを得た。