Travis CI の PHP 5.2 に mbstring が入った
PHP 5.4 がめでたくリリースされましたが, 5.2 なサービスやライブラリを保守している人もまだまだいることでしょう.
移行などを考えると, とりあえずは namespace も Closure も使わずクラス名は Foo_Bar_Baz とかアンダースコアで区切る PHP 5.2 なスタイルで書きつつ, PHP 5.3 や 5.4 でも動作するようにライブラリを書く, という選択肢を取ることになりますが, 全部の環境でテストするのは面倒くさい...
というあなたのための Travis CI というサービスについては以前書きました.
Travis CI で PHP 5.4 も CI する, PHPUnit も Behat もやる
そんな Travis CI ですが, PHP 5.2 に mbstring が入っておらず, そのせいで PHP 5.2 だけテストが通らない, なんてことが起こっていました.
[caption id="attachment_1762" align="aligncenter" width="552" caption="mb_strwidth が無くてテストがコケる"][/caption]
ですがそれも今は昔の話, いつの間にか mbstring 入りで PHP 5.2 環境が用意されるようになったようで, 問題無くテストが通るようになっていました.
[caption id="attachment_1765" align="aligncenter" width="543" caption="テスト通った!"][/caption]
コミット識別子を見ると, どちらも同じコードに対してテストが実行されていることがわかります.
この修正は, Travis CI の PHP 対応に尽力なさっている Loïc Frering さんによるものです.
他にも PHP の新しいバージョンが出るたびに定義ファイルを用意してくれたり, 足を向けては寝られない思いです. (ちなみにフランスの方らしいです)
ところで通常 Travis CI によるビルドを実行するには GitHub に対して push する必要がありますが, 今回の場合のようにコードに変更は無いが再度実行したい, という場合は, 以下の方法でできます.
- GitHub のリポジトリの Admin から Service Hooks, Travis と辿る
- Test Hook ボタンを押す
[caption id="attachment_1768" align="aligncenter" width="453" caption="GitHub 上の Travis CI の Service Hook 管理画面"][/caption]
これで push したときと同様の通知が行われ, Travis CI 上でのビルドを強制的に実行することができます.
そういうわけでまだまだ PHP 5.2 な方もどんどん Travis CI を作っていきましょう.