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しておく必要あり
- ビルドコマンドはこんな感じ
- Gradleを使いたい場合は、gradlew を推奨とのこと
chmod +x gradlew ./gradlew [task]
- リポジトリ内にビルド設定を定義できない??
自動ビルドのトリガー
- Push
- default branch 以外のPushもビルド
- GitHub上のPRと連携してくれない
- ビルドがとおったPR(commit)か?は確認できない
PRと連携できていないのは残念。
ビルド結果
- build badge のURLを提供
- build badge 表示は
latest
(最後に実行したビルド)のみ
- build badge 表示は
- ビルド成果物(Artifacts)の保存
- マスタービルドで生成されるJar/Warを指定しておくと、Downloadが可能
- Mail通知
- ビルド後のデプロイタスクも設定可能
単純なビルドの成否を出力・通知するだけのTravisCIとの大きな違いとして、Artifactsの保存やデプロイタスクがある。branchごとではなく、とにかく最後にビルドした結果が残るという仕様が、少し残念なところ。
その他
- 内部的にはコンテナ上でビルドが走る
- 各ステップの詳細ログが見れる
- UIは良く言えばシンプル、なんか物足りなくも感じる...
SampleでDrone.ioビルドを設定してみたリポジトリはコチラ
https://github.com/shionit/sample-droneio