Travis-CIでhhvmのテストが失敗するようになっていたようだ

投稿日:

気軽に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.ymldist: 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のバージョン, コードネーム を指しているということがわかりました。

Ubuntu – Wikipedia

バージョン コードネーム テスト版の名前 リリース日 サポート期限
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の設定を見るといいかもです。

何か勘違いしているようでしたら教えてください。

投稿日:
カテゴリー: CIPHP タグ:

作成者: shimabox

Web系のプログラマをやっています。 なるべく楽しく生きていきたい。

コメントする

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください