CapistranoでServerspec :raise_on_non_zero_exit
Capistranoでリモートホストに同時実行する。
Serverspecを各ホストでlocal実行する。
複数台でエラーが出る。
そんな時に、エラーログが1つのサーバー分しか出ない時。 または、エラーを無視して、他のサーバーの処理もやりきって欲しい時のオプション。
:raise_on_non_zero_exit
これをこんな風につけておくと、1台でエラーが起きてもとりあえず他のサーバーの処理も継続してやってくれる。
で、failのログだけ出してくれる。
execute "bundle exec rake spec", raise_on_non_zero_exit: false
例えば、executeでやるとこんな感じで結果が出る。
… (省略) … NFO [7ef5a9c5] Finished in 0.233 seconds with exit status 1 (failed). INFO [b65518f1] Finished in 0.274 seconds with exit status 127 (failed). INFO [dev1-revprx03] INFO [385b5e33] Running /usr/bin/env bundle exec rake spec as root@dev1-server02 ← 実行開始のログ INFO [dev1-haprx03] INFO [d1ca94b8] Running /usr/bin/env bundle exec rake spec as root@dev1-server01 INFO [80a9b50b] Finished in 0.321 seconds with exit status 1 (failed). ← 各結果。左側のIDで引けば、どの開始のログとマッピングできるかわかる。 INFO [752c7beb] Finished in 0.645 seconds with exit status 7 (failed). INFO [fb12840b] Finished in 0.626 seconds with exit status 1 (failed). INFO [9030acf5] Finished in 0.670 seconds with exit status 1 (failed). INFO [d21c1b2f] Finished in 0.620 seconds with exit status 1 (failed). INFO [9e397341] Finished in 1.304 seconds with exit status 1 (failed). INFO [ca2c4a43] Finished in 0.608 seconds with exit status 127 (failed). INFO [385b5e33] Finished in 0.588 seconds with exit status 127 (failed). INFO [d1ca94b8] Finished in 0.585 seconds with exit status 127 (failed).