I’m trying to upgrade to CircleCI 2.0 for a Rails app. I used the automated config updater tool, and the auto-generated tool resulted in failures when the command
bin/rake assets:precompile ran, with the error
Webpacker requires Yarn >= 0.25.2 and you are using 0.21.3.
To fix it I tried manually updating yarn as one of my build steps, meaning my config file now starts like this:
version: 2 jobs: build: working_directory: ~/XX/YYY parallelism: 1 shell: /bin/bash --login environment: CIRCLE_ARTIFACTS: /tmp/circleci-artifacts CIRCLE_TEST_REPORTS: /tmp/circleci-test-results docker: - image: circleci/build-image:ubuntu-14.04-XXL-upstart-1189-5614f37 command: /sbin/init steps: - checkout - run: mkdir -p $CIRCLE_ARTIFACTS $CIRCLE_TEST_REPORTS - run: working_directory: ~/XX/YYY command: rm -f XX/YYY/.rvmrc; echo 2.3.1 > XX/YYY/.ruby-version; rvm use 2.3.1 --default - run: working_directory: ~/XX/YYY command: nvm install 8.9.4 && nvm alias default 8.9.4 - run: curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | sudo apt-key add - - run: echo "deb https://dl.yarnpkg.com/debian/ stable main" | sudo tee /etc/apt/sources.list.d/yarn.list - run: sudo apt-get update && sudo apt-get install yarn && yarn -v
sudo apt-get install yarn installs v1.5.1 (the last line of the output is
Setting up yarn (1.5.1-1)), I would have assumed that the output of
yarn -v would be
v1.5.1. But actually the build fails on this command, with the error:
yarn install v0.21.3 [1/4] Resolving packages... [2/4] Fetching packages... error @firstname.lastname@example.org: The engine "yarn" is incompatible with this module. Expected version ">=0.25.2". error Found incompatible module
I can’t for the life of me understand why
yarn -v just after I installed v1.5.1 is prompting v0.21.3 to be installed, and why webpacker is getting involved at this stage. It looks like the first time I try to invoke
yarn, something somewhere says to go fetch 0.21.3 - so how do I bump that number?