Edited at

CircleCI で yarn install が失敗したので対策を共有

More than 1 year has passed since last update.


環境


  • CircleCI 1.0

  • yarn v0.21.3


手順通りに circle.yml を書いてみたところ

公式ドキュメント


yarn インストール失敗

そう簡単に行くことなく、yarn インストールが失敗。

$ yarn

yarn install v0.21.3
[1/4] Resolving packages...
⠁ [2/4] Fetching packages...
error laravel-mix@0.12.1: The engine "node" is incompatible with this module. Expected version ">=6.0.0".
error Found incompatible module
info Visit https://yarnpkg.com/en/docs/cli/install for documentation about this command.


node のバージョンをあげてみる

Node version: 4.2.6 でさすがに低すぎたので、

既に手元で動いていた 7.10.0 に上げてみる。


circle.yml

machine:

node:
version: 7.10.0

$ yarn

yarn install v0.21.3
[1/4] Resolving packages...
⠁ [2/4] Fetching packages...
warning fsevents@1.1.1: The platform "linux" is incompatible with this module.
info "fsevents@1.1.1" is an optional dependency and failed compatibility check. Excluding it from installation.
[3/4] Linking dependencies...
warning "eslint-plugin-vue@2.0.1" has incorrect peer dependency "eslint@^2.0.0 || ^3.0.0".
warning "eslint-plugin-react@6.10.3" has incorrect peer dependency "eslint@^2.0.0 || ^3.0.0".
[4/4] Building fresh packages...
Done in 73.65s.

一部 warning が出てるけど成功した。


と思ったら PHPUnit が失敗

$ vendor/bin/phpunit

bash: line 1: vendor/bin/phpunit: No such file or directory
vendor/bin/phpunit returned exit code 127

コンテナに ssh してみたところ、 vender ディレクトリがそもそもなかった。

つまり、composer install されていなかったもよう。

それならと思い、明示的に composer install するように書いてみたら、無事に PHPUnit も実行されてビルドが成功した。


circle.yml

dependencies:

override:
- composer install --no-interaction

なぜ composer install されなくなったのかは不明だが、正常にビルドできたので一旦良しとする。


最終的な circle.yml


circle.yml

machine:

php:
version: 7.1.0
node:
version: 7.10.0
environment:
PATH: "${PATH}:${HOME}/${CIRCLE_PROJECT_REPONAME}/node_modules/.bin"

dependencies:
override:
- yarn
- composer install --no-interaction
cache_directories:
- ~/.cache/yarn

test:
override:
- vendor/bin/phpunit