CicleCIのクレジットを無駄遣いしてしまった話
CircleCIでは実行時間に対してクレジットを使う
戒めポイント1 無闇にSSHしない
実行時間に対してクレジットを消費してしまうため、無闇にSSHなどしてしまうとキャンセルするまでは実行時間カウントされてしまうのでよほどじゃない限りやってはいけない。
有識者的にはSSH Debugで動く方法確率させてからymlに落とし込むほうがいいらしい。なるほどなぁ。
戒めポイント2 最低限記法などは確認してから実行する
記法等で無駄にビルドが走ってしまうのはとっても勿体ないので、最低限の記法などは確認してから実行するほうが良いです。
Homebrewでcircleciのcommand line toolsをインストールすればlocalで実行確認ができます。
brew install circleci
circleci config validate
基本的にCI上で確認を行なう作業はCI環境依存の問題だけにとどめたい
戒めポイント3 規模が大きくなるまではリソースを抑える
たとえば、大きな resource_class (CPU 4基、 メモリ 8 GB) を使用して 1 分あたりのクレジット数を増やし、大規模なプロジェクトのビルドを高速化することができます。一方、小規模なプロジェクトでコードのリリース頻度が低い場合や、ビルド時間を重視しない場合は、小さな resource_class (CPU 1基、 メモリ 2 GB) を使用できます。
config.yml
でresource_class: small
を指定すると1分あたりのクレジットが減る(その代わり遅いけど)
largeは並列化とか使わない限り必要なさそう?
SSHするときはsmall, 並列でバリバリ動かしたいときはlargerでもいいのかな、という見解も最近は出てきました。
番外編 M1Macでもローカルで動かしたい
M1 Macでは現状 Docker executorは対応していないらしい :cry:
https://circleci.com/product-roadmap/
余談
1000クレジットくらい無駄遣いしてしまった。