TravisCI で PHP7 のビルドがエラーになる #TravisCI #php

(2022/03/17 追記)

フォーラムで話題になっており、サポートからも連携されたようなので、そのうち直りそう。 travis-ci.community

問題

php7.4 で TravisCI が突然コケるようになってしまった。

php: error while loading shared libraries: libargon2.so.1: cannot open shared object file: No such file or directory

.travis.yml では 7.4 を指定していた。

language: php
php:
  - 7.4

最後にうまくいったときのビルドと比べてみると、どうも PHP のパッチバージョンが異なっているようだ。

成功した時は 7.4.22 だったが、 7.4.28 になっている。

デバッグビルドをしてみると、 phpenv が 7.4.28 をインストールしていることが分かる。

ログをよく見ると、そもそも php がうまくインストール出来ていないようだ。

$ phpenv versions
  system
  5.6
  5.6.40
  7.1
  7.1.27
  7.2
  7.2.15
* 7.4 (set by /home/travis/.phpenv/version)
  7.4.28
  hhvm-stable
  hhvm
$ phpenv global 7.4.28 2>/dev/null
7.4.28 is not pre-installed; installing
Downloading archive: https://storage.googleapis.com/travis-ci-language-archives/php/binaries/ubuntu/16.04/x86_64/php-7.4.28.tar.bz2
9.39s$ curl -sSf --retry 5 -o archive.tar.bz2 $archive_url && tar xjf archive.tar.bz2 --directory /
0.01s0.02s$ phpenv global 7.4.28
php: error while loading shared libraries: libargon2.so.1: cannot open shared object file: No such file or directory

検証

Travis はパッチバージョンも指定できるので実際に試してみると、7.4.27 以降は同様のエラーが発生してしまうようだ。

version result
7.4.22 成功
7.4.26 そもそも Travis で指定不可なので、エラー(404)
7.4.27 エラー
7.4.28 エラー
language: php
php:
  - 7.4.22
  - 7.4.26
  - 7.4.27
  - 7.4.28
script:
  - php -v

検証結果は↓

https://app.travis-ci.com/github/su-kun1899/sandbox-travisci/builds/247900433

対応

とりあえず、 7.4.22 のバージョンをベタ指定することで暫定回避できる。

根本原因がどこにあるか分からないけど、 PHP8 にするなり GitHub Actions にお引越しするなりした方がよさそう。。

Building a PHP project - Travis CI