Travis CIというのは
CIのシステムの一つで、環境に依存するバグを発見し、プロジェクトのソースコードが正常に機能するかどうかを自動でチェックするためのものです。
同じようなものにJenkinsがありますが、これはローカルにJenkins用のサーバーを立てないといけないので少しハードルが高めです。
Githubにソースコードをプッシュしていて公開リポジトリならTravis CIという方法が手軽で良いです。
Haskellで書いたソフトウェアのリポジトリでTravis CIを試す
てな訳で、前回の記事で書いてGithubにプッシュしてあるリポジトリをTravisCIに接続して依存関係が壊れていないか、
そして、実際にビルドが通るかどうかを試してみました。
Travis CIのドキュメントによると、
Rubyや、C、C++やJavaのような言語だけではなくHaskellにも対応しているようですね。
さすがメジャーな言語Haskell
冗談は置いておいて、Haskellでのtravis CIへの接続の仕方はとても簡単です。
Travis CIへはGithubアカウントでログインすることができ、接続したいリポジトリの接続をONにすれば完了です。
最初、この接続をONにするところを忘れていて、travis CI向けのYAMLをリポジトリにプッシュしてもTravisが走らずに頭を悩ませました。
何かを始める時にはドキュメントをしっかり読みましょう。
Haskell用の最小限の設定は次のようになります。
これを記述した.travis.ymlをリポジトリのルートに配置してプッシュすればTravisが走り出します。
自動で環境が作られた上でビルドが走るのは素敵ですね。
しかし、この状態ではデフォルトの設定
になってしまいます。
これを例えば、
- 依存関係をチェックだけする
- 実行ファイルに依存するライブラリだけをインストール
- 実行ファイルはビルドを行うが、その自動テストの実行はスキップする
language: haskell
script:
- cabal configure && cabal build
install:
- cabal install --dry-run --only-dependencies
- cabal install --only-dependencies
プロジェクトのREADME.mdにTravisのビルド結果を表示するようなMarkdownを記述してやると、
[build|passing]のような画像まで表示させられます!
(下図参照:

他のビルド環境を用意してビルドが通るかどうかを検査するのがめんどくさいという人はyamlを書くだけのTravis CI、オススメです。