くりにっき

フルスタックキュアエンジニアです

GithubにあるリポジトリをTravis CI連携する手順 #junitbook

『JUnit実践入門』写経・実践会 in 横浜 #7 のハンズオン用。

このエントリではJava(Groovy)について書いていますが他言語でもだいたい同じです。

前準備 : MavenかGradleでテストできる状態にあるプログラムをGithubに公開する

1 : Travis CIにアクセスする

https://travis-ci.org/ の右上からGithubアカウントでログイン
f:id:sue445:20130527230858p:plain

2 : 自分の名前→Accountsでリポジトリの一覧が出る

f:id:sue445:20130527231038p:plain

3 : スイッチをOFFからONに切り替える

f:id:sue445:20130527231331p:plain

Github側も勝手に連携される
f:id:sue445:20130527231524p:plainf:id:sue445:20130527231527p:plain

Tokenも全部設定されてるSUGEEEEEEEEEE!!!!!!!!!!1111111111

4: リポジトリのルートに設定ファイル( .travis.yml )を置く

f:id:sue445:20130527234302p:plain

Java

language: java
jdk:
  - openjdk6
  - openjdk7

Groovy

language: groovy
jdk:
  - openjdk6
  - openjdk7

前処理や後処理などをやりたければ下記を参照

http://about.travis-ci.org/docs/user/build-configuration/

  1. before_install
  2. before_script (複数設定可能)
    • JUnitで言うところのsetUp
    • 設定ファイルをコピーしたりとか
  3. (Travisがcloneしたリポジトリにcdする)
  4. script
    • これがなければTravisが勝手に判断してくれる(例:pom.xmlやbuild.gradleを実行)
  5. after_script (複数設定可能)
  6. after_success / after_failure
  7. after_script
    • JUnitで言うところのtearDown

注意点

  • テスト時にコマンドが複数必要なら && でつなげるかshellで書く
    • after_script で失敗してもテストは成功扱いになるため (before_scriptも?)
  • JDKが複数指定できるのは便利だが、微妙に重いのでたまにテストがタイムアウトする
    • 1つでもタイムアウトしたらエラーになってアラートメールが飛ぶw

5 : githubにpushするとTravisでテストが動くはず

f:id:sue445:20130527233138p:plain

6 : readmeにバッジを貼る

Status Images
f:id:sue445:20130527233410p:plain

readmeのフォーマットに応じたものをコピペする
f:id:sue445:20130527233505p:plain

7 : ペタリ

f:id:sue445:20130527233712p:plain

Travisのバッジがあることが一種のステータスになってる気がします。(有名どころのライブラリはだいたいこれがついてる)

おまけ : ここがすごいよTravis CI

Pull Requestがあったらそのbranchに対してテストしてくれる
f:id:sue445:20130527233902p:plain

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)

JUnit実践入門 ~体系的に学ぶユニットテストの技法 (WEB+DB PRESS plus)