こんにちは、らこです。DartのプロジェクトをCI(Continuous Integration)したい時の環境について比較とかします。
Travis CI
利点
- GitHubとの連携が強い(Pull Requestの内容を自動でテストしてもしマージした時ビルド落ちないかどうかとか教えてくれる)
欠点
- Dartサポートしてない
方法
ちょっと古い記事ですがファイル中のバージョン番号等以外は基本的にこのままです。
SETTING UP TRAVIS CI FOR YOUR DART PROJECT
おおまかな流れとしては
- node.jsでCI建てる
- ビルドのたびにDartSDK引っ張って環境を作る
- Dartのテスト実行
です。手間はありますが最初だけですので一度テンプレ作ってしまえばそんなに苦でもありません。ただDartSDK落としてきてインストールするところでちょっと遅くなるんでCIの実行時間が気になる方はやめたほうがいいかもしれません
drone.io
利点
- Dart公式サポートされてる
欠点
- 特に無い?
方法
私はこっちを推してますし、使ってます。ちょうどよく今日新しくDartのライブラリ公開したのでそのCIの手順を紹介します。
-
GitHubに上げる
こんなんです。 https://github.com/laco0416/objective_regex -
drone.ioからリポジトリを選択する
サインインして、「New Project」からGitHubを選択するとリポジトリ一覧が出てくるので選びます。
4.ビルドスクリプトを書く
CIで実行するビルドスクリプトを書きます。デフォルトでは「test/run.sh」を実行するようになってますが今回のプロジェクトにはそれは入れてないので、プロジェクトにあわせて書きました。
まとめ
drone.ioがオススメです。近いうちにpub.dartlang.orgにアップロードされたパッケージはすべて自動的にdrone.ioでCIされるようになるらしいですがまだ動いてないです。詳細は pub.drone.io を参照してください