気軽にCIを試せるぞ!!というわけでGitHubではTravis CIを使っているのですが、なんとなく昔作ったリポジトリでbuildしてみたら見事にコケました。
その時出たメッセージがこちら。
HHVM is no longer supported on Ubuntu Precise. Please consider using Trusty with `dist: trusty`.
HHVMは、Ubuntu Preciseではサポートされなくなりました。dist:trusty にてTrustyを使用することを検討してください。
※Google翻訳によるとこんな感じ
このメッセージを読む限り、hhvmの時は.travis.ymlにdist: trustyを追加すれば良さそうです。ところがはて、この条件の時はこの設定を読み込むみたいなのってどうするんだろうとなりましてググったら以下の情報が出てきました。
こちらを参考に書き直した.travis.ymlがこちらになります。
language: php
dist: precise
php:
- 5.3
- 5.4
- 5.5
- 5.6
- 7.0
- 7.1
matrix:
include:
- php: hhvm
dist: trusty
before_script:
- travis_retry composer install
こうすると php5.3〜7.1 はpreciseで行われ、
※Travisのconfigを参照
{
"language": "php",
"dist": "precise",
"php": 5.3,
"before_script": [
"travis_retry composer install"
],
"group": "stable",
"os": "linux"
}
hhvmはtrustyで行われていることが分かります。
{
"language": "php",
"dist": "trusty",
"php": "hhvm",
"before_script": [
"travis_retry composer install"
],
"group": "stable",
"os": "linux"
}
そもそも “precise” とか “trusty” ってなんなんだぜ?
そもそも、"dist": "precise"とか"dist": "trusty"などと言われてもUbuntuに疎い自分にとって、なんなの?って感じだったのでちょっと調べてみたところ、Ubuntuのバージョン, コードネーム を指しているということがわかりました。
| バージョン | コードネーム テスト版の名前 | リリース日 | サポート期限 |
|---|---|---|---|
| 12.04 LTS | Precise Pangolin | 2012年4月26日 | 2017年4月 |
| 14.04 LTS | Trusty Tahr | 2014年4月17日 | 2019年4月 |
こちらを見る限り
"dist": "precise"は、バージョン12.04 (コードネーム Precise)"dist": "trusty"は、バージョン14.04 (コードネーム Trusty)
を指していると思われます。
それと、"dist": "trusty"でbuildするとこんなメッセージも出ているかと思います。
This job ran on our Trusty environment, which is gradually becoming our default Linux environment. Read all about this in our blog: Trusty as a default Linux is coming and take note that you can add dist: precise in your .travis.yml file to continue using Precise.
このjobはTrusty環境で実行され、徐々に私達のデフォルトのLinux環境になっていきます。Precise環境を引き続き使いたいならdist: preciseを.travis.ymlに追加しときたまえ。Hahaha…
※Google翻訳によるとこんな感じ
さらに、このメッセージにあるリンク The Travis CI Blog: Trusty as default Linux is coming を見てみると
今まではこうだったけど、
language: ruby sudo: false script: bundle exec rspec dist: precise
これからはこうしていくぞ
language: ruby sudo: false script: bundle exec rspec dist: trusty
みたいなことが書かれています。
移行スケジュールも載っています。
| WHAT | WHEN |
|---|---|
| begin default dist: trusty rollout | Tuesday, July 18th 2017 |
| complete default dist: trusty rollout | Friday, September 1 2017 |
| begin sudo: required for dist: precise rollout | Tuesday, September 5 2017 |
| complete sudo: required for dist: precise rollout | Friday, September 22 2017 |
※sudoもrequiredが必要になるのかな?このへんまだ調べていません
この先、dist: trustyがデフォルトの設定になるようです。
なのでPreciseでしか動かない環境の場合は、明示的にdist: preciseを設定する必要がありそうです。
つまり上記を考慮すると、
- Travisで使っているUbuntuのバージョンを上げたよ
- 今までは、Precise, バージョン12.04 LTS だったけど
- Trusty, バージョン14.04 LTS にしたよ
- バージョンの違いによって今まで動いていたjobが動かなくなるかもよ
- その時は、
"dist": "precise"を適宜.travis.ymlに追加したりしてね
ということなのかなと思われます。
PHP5.3, 5.4 の場合
PHP5.3, 5.4 はTrusty環境でサポートされなく?なるっぽいので、先に書いた例は以下の通りにしたほうがいいかもしれません。
language: php
dist: trusty
php:
- 5.5
- 5.6
- 7.0
- 7.1
- hhvm
matrix:
include:
- php: 5.3
dist: precise
- php: 5.4
dist: precise
before_script:
- travis_retry composer install
ログはこんな感じです。
Build #9 – shimabox/travis-ci-test – Travis CI
まとめ
タイトルにあったTravis-CIでhhvmのテストが失敗するようになっていた話ですが、要はPrecise環境("dist": "precise")においてhhvmはサポートされなくなったよっていうことでした。"dist": "trusty"と設定すれば大丈夫なようです。
※buildにものすごく時間がかかるようになったのが気になりますが。。
Travisでbuildがコケだしたらdistの設定を見るといいかもです。
何か勘違いしているようでしたら教えてください。