Travis CI で最新の Clang (3.5) を使ってテストする
Travis CI は Github アカウントと連携してリポジトリに .travis.yml
というファイルを置くことで Github に push したときに自動でテストを回して CI してくれるサービス.
Travis で使われている Ubuntu 12.04 に入っているコンパイラは gcc 4.6 と clang 3.3 なので,それで十分な場合は普通に compiler
を .travis.yml
で指定すれば良い.なので,どうしても最新のものを使いたい(C++14 の機能を使っているとか)場合のみ参考にしてください.
ちなみに,最新の gcc を使う方法は Travis CI で最新の gcc を使って自動テスト に書いたので,今回は最新の Clang (3.5) を使う方法をメモ.
結論から書くと,次のような .travis.yml
を書けば良い.
language: cpp script: - clang++ --version - clang++ -std=c++1y -Wall -Wextra -pedantic test/hoge_feature_test.cpp -l boost_unit_test_framework && ./a.out compiler: - clang install: - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test - wget -O - http://llvm.org/apt/llvm-snapshot.gpg.key | sudo apt-key add - - sudo add-apt-repository --yes 'deb http://llvm.org/apt/precise/ llvm-toolchain-precise main' - sudo apt-get -qq update - sudo apt-get -qq install clang-3.5 - sudo apt-get -qq install libboost1.48-all-dev
各項目で何をやっているか簡単に説明する.
install:
clang 3.5 はデフォルトで libstdc++ を使うように設定されているので,PPA から gcc 4.8 をインストールして libstdc++ を 使えるようにする.最新の gcc といえば gcc-snapshot パッケージが鉄板だったけれど,少なくとも Ubuntu 12.04 の gcc-snapshot パッケージは今年の春のパッケージで止まっているので使い物にならず PPA を使うことにした.(libc++ の使い方は必要になったら調べる)
次に clang をインストールする.最新の clang は LLVM の apt リポジトリで提供されているので,パッケージの認証鍵を apt に登録して clang-3.5 をインストールするだけで良い.ちなみに 3.4 はまだリリースされていないのでまだパッケージが無い(そろそろリリースされるはず…).3.5 のパッケージは最新のスナップショットになっているっぽい.
script:
バージョン情報をログに残しておいてから自分のテストをまわすコードを書く.上記の例では Boost.Test を使ったソースを -std=c++1y
でビルドして実行している.
a.out
が正常終了すれば OK,そうでなければ NG と判定される.