Logic Delight

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

Jenkinsオジサンからの卒業その3(Drone.ioを試してみた)

Drone.io

Continuous Integration · drone.io

GitHub以外のVCSホスティングサイトとの連携もでき、OSSなのでオンプレ環境でも利用可能。細かい機能面は今後に期待、か。以下は、OSS版ではなく https://drone.io/ で試したもの。

使い方

  • アカウントの作成は、GitHub連携・BitBucket連携・Google連携で可能
  • 自動ビルドさせたいリポジトリを選択する
    • 標準で対応しているビルド構成でよければ、これだけでビルド実行できる
    • 対応していないビルド構成の場合は、ビルド用のコマンドを drone.io の Settings ページで入力する必要がある
  • Java デフォルトで対応しているビルドスクリプトは Ant, Maven
    • Gradleを使いたい場合は、gradlew を推奨とのこと
      • gradlew をリポジトリにcommitしておく必要あり
      • ビルドコマンドはこんな感じ
chmod +x gradlew
./gradlew [task]
  • リポジトリ内にビルド設定を定義できない??
    • .drone.yml を置いたのに、読んでくれない?OSS版だけの機能なのか??
      • だとしたら非常に残念
      • 2016/07/28追記 OSS版では .drone.yml を読み込んでくれました

自動ビルドのトリガー

  • Push
    • default branch 以外のPushもビルド
  • GitHub上のPRと連携してくれない
    • ビルドがとおったPR(commit)か?は確認できない

PRと連携できていないのは残念。

ビルド結果

  • build badge のURLを提供
    • build badge 表示はlatest(最後に実行したビルド)のみ
  • ビルド成果物(Artifacts)の保存
    • マスタービルドで生成されるJar/Warを指定しておくと、Downloadが可能
  • Mail通知
  • ビルド後のデプロイタスクも設定可能

単純なビルドの成否を出力・通知するだけのTravisCIとの大きな違いとして、Artifactsの保存やデプロイタスクがある。branchごとではなく、とにかく最後にビルドした結果が残るという仕様が、少し残念なところ。

その他

  • 内部的にはコンテナ上でビルドが走る
    • 各ステップの詳細ログが見れる
  • UIは良く言えばシンプル、なんか物足りなくも感じる...

SampleでDrone.ioビルドを設定してみたリポジトリはコチラ
https://github.com/shionit/sample-droneio