Travis CI で最新の gcc を使って自動テスト
Travis CI にある gcc は現在 4.6 で,普通に使う分には申し分ないけれど,最新の C++ の機能を使っている場合,最新の gcc や clang でテストを実行する必要がある場合がある.
Travis CI の VM は Ubuntu らしく,最新の gcc を利用したければ自分で apt にリポジトリを登録し,gcc-4.8 をインストールしてから実行すれば良い. 日本語での情報は全くなかったので,ここにメモしておく.
やり方は簡単で,.travis.yml
に install:
要素を追加するだけで良い.
自分の場合はこんな感じに設定している.
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.8
で tests/constexpr_string/basic_string.cpp
をコンパイルし実行している.
ファイル数が少ないのでベタ書きにしているけれど,本来はテスト実行用の Makefile
や Rakefile
を使ったほうが良さそう.
手元でも guard
を使ってテストを回しているので基本的に問題はまず無いけれど,push 時にテストしてくれる安心感と README のステータス表示はやっぱり便利だし,万一プルリクエストが飛んできても自動でテストしてくれたりする.
clang
が ICE を吐いて死んでしまうので今回は clang
でのテストをやっていないけれど,本来は gcc
と clang
の両方でテストを回すのが良さそう.