Logic Delight

明日のワシは忘れてしまうから、コードにはコメントを書くのです。

Jenkinsオジサンからの卒業その2(CircleCIを試してみた)

Circle CI

circleci.com

GitHubとの親和性は高く、手軽に使えていい感じ。

使い方

  • Circle CI にGitHubアカウントでログイン
  • 自動ビルドさせたいGitHubリポジトリを選択する
    • これだけでビルド実行できる
  • 対象のリポジトリcircle.yml を置かなくてもビルドは可能のようだが、今回試したJavaプロジェクト(TravisCIで試したものと中身は同一)では置かないとビルドが通らなかった

自動ビルドのトリガー

  • 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