Travis CI で最新の gcc を使って自動テスト

Travis CI にある gcc は現在 4.6 で,普通に使う分には申し分ないけれど,最新の C++ の機能を使っている場合,最新の gcc や clang でテストを実行する必要がある場合がある.

Travis CI の VM は Ubuntu らしく,最新の gcc を利用したければ自分で apt にリポジトリを登録し,gcc-4.8 をインストールしてから実行すれば良い. 日本語での情報は全くなかったので,ここにメモしておく.

やり方は簡単で,.travis.ymlinstall: 要素を追加するだけで良い. 自分の場合はこんな感じに設定している.

language: cpp
compiler:
    - gcc-4.8
script:
    - g++-4.8 -std=c++11 -Wall -Wextra -pedantic tests/constexpr_string/basic_string.cpp && ./a.out
install:
    - sudo add-apt-repository --yes ppa:ubuntu-toolchain-r/test
    - sudo apt-get -qq update
    - sudo apt-get -qq install g++-4.8

https://github.com/rhysd/immutable-string

g++-4.8tests/constexpr_string/basic_string.cpp をコンパイルし実行している. ファイル数が少ないのでベタ書きにしているけれど,本来はテスト実行用の MakefileRakefile を使ったほうが良さそう.

手元でも guard を使ってテストを回しているので基本的に問題はまず無いけれど,push 時にテストしてくれる安心感と README のステータス表示はやっぱり便利だし,万一プルリクエストが飛んできても自動でテストしてくれたりする.

clang が ICE を吐いて死んでしまうので今回は clang でのテストをやっていないけれど,本来は gccclang の両方でテストを回すのが良さそう.