Jenkinsオジサンからの卒業その2(CircleCIを試してみた)
Circle CI
GitHubとの親和性は高く、手軽に使えていい感じ。
使い方
- Circle CI にGitHubアカウントでログイン
- 自動ビルドさせたいGitHubリポジトリを選択する
- これだけでビルド実行できる
- 対象のリポジトリに
circle.yml
を置かなくてもビルドは可能のようだが、今回試したJavaプロジェクト(TravisCIで試したものと中身は同一)では置かないとビルドが通らなかった- build.gradle ファイルからJDKのバージョンが読み取れなかった、と思われる
- Language Guide: Java - CircleCI
自動ビルドのトリガー
- Push
- default branch 以外のPushもビルド
- Pull Request
- 追加Pushで再ビルド
Travis CIと遜色ない印象。
ビルド結果
- build badge のURLを提供
- ビルド成果物(Artifacts)の保存
- マスタービルドで生成されるJar/Warの他に、単体テストレポートや静的解析ツール実行結果も残しておけるので、閲覧が可能
- Mail通知
- Slack通知
- ビルド後のデプロイタスクも設定可能
単純なビルドの成否を出力・通知するだけのTravisCIとの大きな違いとして、Artifactsの保存やデプロイタスクがある。
その他
- 内部的にはコンテナ(デフォルトではUbuntu)上でビルドが走る
- ビルドの各ステップの処理時間が確認できる
- 各ステップの詳細ログが見れる
- ビルド用コンテナにsshしてビルド失敗原因の調査や細かな環境設定が可能
- テスト実行の並列度など細かな設定が可能
- 複数コンテナで並行実行させるには有償プランにする必要あり
- build スクリプトは自動検出
- TravisCIと同様
SampleでCircleCIビルドを設定してみたリポジトリはコチラ
https://github.com/shionit/sample-circleci