今回の問題
10/23まで問題なかったciが10/26に急にこけるようになった。
> Illuminate\Foundation\ComposerScripts::postAutoloadDump
> @php artisan package:discover
In PackageManifest.php line 122:
Undefined index: name
Script @php artisan package:discover handling the post-autoload-dump event returned with error code 1
Exited with code exit status 1
CircleCI received exit code 1
この問題はLaracastでも報告されている。
原因としては10/24にcomposer2がリリースが影響している。
circleciから提供されるコンテナイメージはcomposerをインストールする際に以下のコマンドを実行している
# Install composer
RUN php -r "copy('https://raw.githubusercontent.com/composer/getcomposer.org/master/web/installer', 'composer-setup.php');" && php composer-setup.php && php -r "unlink('composer-setup.php');" && mv composer.phar /usr/local/bin/composer
解決策
composer self-update --1
を実行すると1系に更新されるので .circleci/config.yml
のステップに以下を追記。
.circlci/config.yml
- run: sudo composer self-update --1
追記
circleciから提供されるDockerイメージには circleci/
と cimg/
の2種類があり、 circleci/
の方はいわゆる旧世代のためなるべく cimg/
を使うべきです。
こちらのイメージを使っている場合
https://github.com/CircleCI-Public/cimg-php/blob/master/7.4/Dockerfile#L26
に記述があるようにcomposerのバージョンを指定してインストールがされているため、こちらの場合は問題が起こらないようです。