LoginSignup
4
4

More than 5 years have passed since last update.

Elixir プロジェクトを Travis で CI する方法

Last updated at Posted at 2013-12-21

:warning: ここに書いてある内容はすでに古い可能性があります。2015/02/07 現在で beta ですが、travis 側でも Elixir プロジェクトのサポートが入っていて、それに従うだけで Elixir プロジェクトを CI できます。詳しくは以下を見てください。


やることは2つあります。

  1. travis ci で対象プロジェクトを有効に設定
  2. GitHub に.travis.ymlを push

今回は後者の設定ファイルの書き方を扱うので、1. については参照先だけ載せて簡単に。

travis ci で対象プロジェクトを有効に設定

Travis CI で対象となるプロジェクトを有効にしておきます。
http://mochizblog.heroku.com/21 こちらの記事などを参考にサインアップ、プロジェクトの設定をしてください。

.travis.yml の書き方

色々と Elixir のプロジェクトにある.travis.ymlを見てみましたが、比較的よく使われてそうなものを一例として紹介します。
これをプロジェクトのトップディレクトリに.travis.ymlとして保存して、git push して GitHub に反映することで、travis 側で CI してくれます。

.travis.yml
language: erlang
otp_release:
  - 17.0
before_install:
  - wget http://s3.hex.pm/builds/elixir/master.zip
  - unzip -d elixir master.zip
before_script:
  - export PATH=`pwd`/elixir/bin:$PATH
  - mix local.hex --force
  - mix deps.get --only test
script:
  - mix test

やっていることは、以下の通り。

  • 言語として Erlang を選択
  • Erlang の OTP リリースバージョン指定
  • Elixir のダウンロード、解凍、PATH 設定
  • テスト対象プロジェクトの deps.get
  • test の実行

余談

ちなみに最初に記事を書いたときは Elixir ダウンロード部分が以下のように Elixir を git clone して、コンパイルするスタイルにしてました。しかし最近書かれているライブラリを見ると、ほとんどがダウンロードして解凍するようになっています。実際に ltsvex で試してみたところ、今まで 100 秒かかっていた Elixir のコンパイル処理がなくなり、1 秒かからないくらいで test 環境が整うようになりとても快適になりました。

before_install:
  - git clone https://github.com/elixir-lang/elixir
  - cd elixir && make && cd ..

設定例

試しに ltsvex で設定してみましたので、ご参考にしていただければと。
https://github.com/ma2gedev/ltsvex/blob/master/.travis.yml

おまけ

以下を README.md に記載しておくと、GitHub で見たときに Build Status バッジをつけれます。ma2gedev/ltsvex となっている箇所を自分のものに変更すれば設定できます。
[![Build Status](https://travis-ci.org/ma2gedev/ltsvex.png?branch=master)](https://travis-ci.org/ma2gedev/ltsvex)

SEE ALSO

http://about.travis-ci.org/docs/user/languages/erlang/
https://github.com/myfreeweb/httpotion/blob/master/.travis.yml
https://github.com/ericmj/decimal/blob/master/.travis.yml
https://github.com/devinus/poison/blob/master/.travis.yml


この記事は Elixir Advent Calendar 2013 の 21 日目です。明日は @keithseahus さんです。

4
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
4