Travis CIでOCamlを使うまでの道のり
Travis CIはGithubのhookと連携して、push時に自動的にテストを通す、所謂CI、継続的インテグレーションツールというやつだ。
本記事ではTravis CI自体の詳細な使い方に触れることはしない。公式ドキュメントをたどれば結構親切に説明されている。
Travis CIで使える言語は以下のリンクで見ることが出来る。
ここでひとつ問題がある。
OCamlのサポートがない。
これは由々しき事態だ。人類の英知と希望であるOCamlが使えない。全人口の半数くらいが自分の書きたいプログラムを赤裸々に表現できないことに苦しみを覚えることだろう。
ということで、本記事ではTravis CIでOCamlを使うにはどうすればよいかを示す。
OCaml公式のTravis CI bindingを入手する
と思ったが、実は公式からbindingが提供されていた。ただし、Webサイトには特に誘導がなく、Githubに無造作にリポジトリが置いてあるだけだった。
ここに.travis-ocaml.shというのがあるので、これをダウンロードする。
.travis.ymlを用意する
OCaml向けに.travis.ymlで必要なフィールドは3つ。
1. install ... 依存パッケージのインストールコマンド
2. sudo ... sudoを許可するかどうか
3. env ... 環境変数
ざっくり言うと、sudoを許可して環境変数にインストールしたいOCamlのバージョンを指定、そしてインストールコマンド(さっきの.travis-ocaml.shを叩く)を書いておけばAll rightだ。
僕は今回PythonのnoseやMakefileと組み合わせて使っていたのでこんな感じになった。
language: python python: - '2.7' install: "pip install -r .install.txt; bash -ex .travis-ocaml.sh" sudo: required script: make test env: - OCAML_VERSION=4.02