趣味も仕事も結構CI使ってて、プライベートでは色々自動化しました。会社で使う分には、あんまり料金とか気にならないですが、趣味で使う分には参考になるかもしれません。
触ったことあるやつとか、無いやつとかまとめました
CI
- Jenkins
- CircleCI
- GithubActions
- TravisCI
- (CloudBuild CloudRun)
#自分の主観です
###Jenkins
付き合いが長すぎて、飽きましたが、一番汎用性が高いです。むしろコンテナ的使い方というより、cronで済むようなことをJenkinsでやっていました。
EC2とかに入れてコンテナ使わずにvirtualenvとかで動かす分には、これが一番安く使えました。
長い時間パースしたりする作業とか、頻繁にコンテナ立ち上げる作業だと結構費用がかさむので、そういう系は今でもJenkinsでやってます。
###CircleCI
Xcodeのビルドができるんですよ。これ凄く大きいんですけど、XcodeのビルドはJenkinsでやってたんで、使ったことないです。
無料枠がそんなに大きくなかったのと、UIが新しいサイトと古いサイトで行ったり来たりしてちょっと使い辛かったです。
無料枠とUIが原因で結局GithubActionsに移動しました
###GithubActions
プライベートリポジトリでも結構な無料枠があるんですよね。
ジョブごとにyamlファイルを分けれたりするので、すっきりします。
yamlがCircleCIと似てるので、キャッチアップが楽でした。
主観ですけど、UIが綺麗です。
私は、今ほとんどGithubActionsでやってます。
ただ、コンテナをプルしてきて実行して、成果物をGCSにアップロードしてってやってたらGCPの値段が結構かかってしまいました。
結局EC2のJenkinsで回して、たまーに成果物をまとめてGCSにアップロードするのが一番安くつくので、そうしてます
###Travis
オープンソースとかだと、TravisCIをめっちゃ見かけるけど、僕は使ったことないです
そもそも、ソースコードがオープンじゃないので、使ってませんでした。
###CLOUD BUILDとCLOUD RUN
GCPのデプロイ関連だとGCPで完結したいと思ったんですが、ドキュメントがなんか分かりにくかったので私は諦めました。
あと、テストを回したりlintチェックしたりSlackに通知したりする場合どうするんだろうっていうのもありました。