TravisCIでErlang/OTP (最小構成版)

Post on 16-Jun-2015

143 views 2 download

description

Travis CIをErlang/OTPで使いたいというときの手順メモ。 Eunitとかrebar、gitについては省略。 追加ライブラリや依存プロジェクトなし。最小構成。 ※Travis CI中でRabbit MQを使えるようなのでそれは後日。

Transcript of TravisCIでErlang/OTP (最小構成版)

図解TravisCIで Erlang/OTP (最小構成版 )

2014/10/30伊藤雅俊 / masatoshi9953@gmail.com

Travis CIに関する自分メモ

Travis CI を Erlang/OTP で使いたい。

Eunit とか rebar 、 git については省略。

追加ライブラリや依存プロジェクトなし。最小構成。※Travis CI 中で Rabbit MQ を使えるようなのでそれは後日。

Githubにリポジトリを用意します

もちろん、ありものリポジトリでも大丈夫。

”rebar eunit” † 、もしくは” make test” できる必要があります。

ここでは手順確認サンプルということで、新規に作りました。

† : 2014 年 10 月 30 日時点では、 Travis CI 上では“ rebar compile && rebar skip_deps=true eunit” が実行されます

TravisCIの設定を先にします

Travis-ci.org/getting_started より。

GitHub アカウントから CI 対象のリポジトリを選択するには、左メニューの「+」ボタンを押します。

リポジトリを選んだところ

リポジトリの一覧が表示されてますので、その中から対象のものを ONにしてください。

追加したばかりだと表示されないことがあるので、” Sync now” をクリックして同期してください。

Home表示に戻ったところ

上メニューの「 Home 」を押すと、状況を表示できます。

左ペインに、 CI させるよう登録したリポジトリが表示されてます。

リポジトリにテスト付きのソースを書く

ひながたは rebar で create-app するのが手っ取り早いので、 V さんの資料( https://gist.github.com/voluntas/4243786 )を見ながら作成。

Eunit のテストは rebar のドキュメントにしたがって作成する( https://github.com/rebar/rebar/wiki/Getting-started)

rebar の生成したコードにテストを追記したコード:

https://github.com/masatoshiitoh/travisci_test/blob/master/src/travisci_test_app.erl

ローカルで eunitしたら commitしてpush

“Test passed” と表示され、テストが完了したことがわかります。

ここまできたら、いったんコミットして、 GitHub にpush します。

CI、失敗します( .travis.ymlがないので)

GitHub へコミットすると、 TravisCI が検知して、 CI を開始します。

ただし、この時点では失敗します。

ローカルでの Eunit は正常におこなえましたが、 TravisCI が「これは Erlang のプロジェクトである」と知らないためです。(ブラウザに表示される実行記録でみるとデフォルトは Ruby のようです)

というわけで、次は .travis.yml をリポジトリの最上位ディレクトリに作成します。

.travis.ymlを作成します

TravisCI に「このリポジトリはErlang/OTP のプロジェクトですよ」と知らせるために、 .travis.ymlというファイル名でリポジトリの最上位ディレクトリに作成します。

内容は右のようになっています。”otp_release” は必要なものを列挙しますが、ここでは 17.1 だけ書いています。

作成したら、 GitHub に push します。

うまくいきました!

Travis CI の画面で passed と表示されればOK です。

参考文献

Erlang リリース コトハジメhttps://gist.github.com/voluntas/4243786

Travis CI 入門: GitHub + Travis CI で継続的インテグレーションhttp://tetsuwo.tumblr.com/post/44706350593/github-travis-continuous-integration

rebar ドキュメントhttps://github.com/rebar/rebar/wiki/Getting-started

TravisCI ドキュメントhttp://docs.travis-ci.com/user/getting-started/http://docs.travis-ci.com/user/languages/erlang/

ほか多数