CircleCIを実行したら以下のようなエラーがでました。
(当時のログを探すのに少し時間がかかるため、commandの部分は完全再現してません)
$ bundle exec rspec spec/
# Too long with no output (exceeded 10m0s)
デフォルトの無出力タイムアウト時間は10分に設定されており、これをこえてしまったためビルドが取り消されてしまったようです。
僕の場合は、なんらかが原因でRSpecの実行時間が10分超えてしまい、CIが停止してしまっていました。
(通常は1分半とかでおわります。)
- run:
name: run rspec
command: |
mkdir /tmp/test-results
TEST_FILES="$(circleci tests glob "spec/**/*_spec.rb" | \
circleci tests split --split-by=timings)"
bundle exec rspec \
--format progress \
--format RspecJunitFormatter \
--out /tmp/test-results/rspec.xml \
--format progress \
$TEST_FILES
no_output_timeout: 15m
このように、 no_output_timeoutパラメーターを記述することでデフォルトの設定を変更できます。
上の例では15分です。
例えばですが、サービスの規模が大きくなってきてRSpecのテスト実行時間が長くなったりしたら変えてあげる必要がありそうですね。(テストで10分かかるぐらい自分の作ったサービスがスケールできたらいいなぁ、、)
因みに余談ですが、現在CircleCIの無料ビルド時間枠は1000分らしいです。(前は1500分だったらしい)
一日約33分ビルドに使える計算なので、個人開発なら余裕だろと思ってました。しかし、先月、本番環境のエラーで詰まったりしてやたらにビルドしまくってたら無料枠使い切ってしまいました、、
ローカルでは通るのに、CIでは通らないテストをトライ&エラーしまくったのも原因だと思います。
1000分って意外と余裕ないですね、、
あまり無駄遣いしないようにしていこうと思いました。。
#参考
circleci Support
最後まで読んでいただきありがとうございます!
なにかご指摘などあればコメントいただけますと嬉しいです!