Born Too Late

Yuya's old tech blog.

Travis CI の PHP 5.2 に mbstring が入った

2012-03-03 16:33:15

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 する必要がありますが, 今回の場合のようにコードに変更は無いが再度実行したい, という場合は, 以下の方法でできます.

  1. GitHub のリポジトリの Admin から Service Hooks, Travis と辿る
  2. 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 を作っていきましょう.