2014年2月4日火曜日

Travisを使ってみた

■概要
Travisとはgithubと連携したオープンなCI(Continuous Integration)ホスティングサービスです
JenkinsのようなCIサーバを独自で構築する必要がなくなるというのがメリットです
Githubのアカウントが必須となりますのでお持ちでない方はまずはGithubのアカウントを作成してください

■使い方
1. Travisへのログイン
https://travis-ci.org/
にアクセスします
右上の「Sign in with Github」をクリックします

※クリックすると拡大されます

GithubのOAuthのページにリダイレクトされるのでTravisからのアクセスを許可します

2. WebHook機能のON
初回ログイン時にはTravisがGithubからリポジトリの情報を取得するため多少時間がかかります
リポジトリの情報の取得が完了すると以下のようなリポジトリ一覧が表示されるかと思います


Travisと連携したい自分のリポジトリを選択し右側のON/OFFトグルボタンをONにします


これでGithubとTravisとのWebHookによる連携が完了しました、WebHook機能を使うことでGithubにpushされた情報をTravis側に通知してあげることができます、それによりpushをトリガーとしてTravisが自動実行されるようになります

3. .travis.ymlファイルの作成
Travisと連携したリポジトリのルート直下に「.travis.yml」ファイルを作成します
.travis.ymlファイルはTravis上で実行するビルドのルールを記載するものです
今回はJavaのリポジトリをTravisでビルドさせるために以下のように.travis.ymlファイルを記載しました
language: Java
jdk:
  - oraclejdk7
  - openjdk6
  - openjdk7
.travis.ymlの書き方は参考サイトに記載されているGetting Startedのページに各言語ごとの簡単なサンプルが記載されています
また、そこから各言語ごとの詳細な設定方法のページへもリンクしているので詳細はそちらを御覧ください

今回設定したのサンプル通りですが、見ての通りJDKを複数バージョン指定することができます
Travisは指定したバージョン分ビルドを実行してくれるため所謂、クロスプラットフォーム分散ビルド的なこともTravis上で実現することが可能となっています
(いちいち各バージョンごとのビルド環境を構築するのって大変ですからね。。。)

4. git push
あとは作成した.travis.ymlファイルをGithubにコミットすれば完了です
WebHookの情報はすぐにTravis側に通知されるようなのでTravis側のビルド結果を確認してみましょう


結果の詳細を確認することができるかと思います
各JDKごとのビルド結果を見れることはもちろん、Jobからリンクを辿って確認すれば実際に裏側で実行されたコマンドベースの結果を閲覧することも可能です

今回は残念ながら全部のビルドが失敗しているようですが、コマンドの結果を見てみるとSeleniumのテストをmaven経由で実行しておりX環境がないためにエラーとなっていました
https://travis-ci.org/kakakikikeke/java-selenium-ui-test/jobs/18171596
いろいろ調べてみるとSeleniumのようなUIテストもTravis上で実行する方法があるようなので次回Seleniumを実行する方法でも紹介できればと思っています

今回紹介する内容は以上です
基本中の基本の部分だけなのであとはビルドの内容をどうするかをもっと詳細に決めていく必要があります

■Tips
プライベートリポジトリに対応したプライベート版のTravisもあるようです、プライベート版は有料でご利用できます
基本的にTravisはパブリックなサービスなのでビルド結果は誰でも閲覧することが可能となっています
なのでパスワードや見られてはいけない情報などがビルド結果に出ないように注意してください

今回実はmavenプロジェクトだったのですが、.travis.ymlファイルにmavenプロジェクトであることを記載していないのに自動でmavenビルドしてくれました
仕組みは詳しく調べていないので分かりませんが、pom.xmlファイルの存在等を調べて自動で判断してくれているのかもしれません

■参考サイト

0 件のコメント:

コメントを投稿