Reputation: 1084
I am trying to configure my gitlab-ci to use yarn install
instead of npm install
My current gitlab-ci.yml looks like:
image: node:6.9.4
cache:
paths:
- node_modules/
- .yarn
before_script:
- apt-get update -qq && apt-get install -qy libelf1
stages:
- test
test_core:
stage: test
script:
- yarn config set cache-folder .yarn
- yarn install
- npm run build
- npm run test
tags:
- 2gb
But the build fails with the error:
/bin/bash: line 48: yarn: command not found
is there something I am missing? I tried installing yarn with:
curl -o- -L https://yarnpkg.com/install.sh | bash
this gave me same error, probably because I need to reload the bash environment for the yarn command to become available.
The above config works perfect with npm install
.
Please help me resolve this. If there is something missing in my config file or there is something wrong with the gitlab-ci. Thanks.
Upvotes: 14
Views: 29316
Reputation: 66
The issue is with the shell not knowing the path to yarn In the home folder for gitlab-runner you need to add the path to yarn in the startup files https://www.gnu.org/software/bash/manual/html_node/Bash-Startup-Files.html
Just add "export PATH=$PATH:/path/to/yarn" at the end of your startup files
Upvotes: 0
Reputation: 4715
I use image:node:latest
and sometimes it prompts the error. Clear Runner Caches
do the job for me. Maybe the runner did not recover to the correct state after doing other jobs.
Upvotes: 3
Reputation: 7990
I solved it by using npx
(package runner). It's better then extending docker-image only for this purpose
npx yarn someCommand
Upvotes: 1
Reputation: 67
Add the following to your ci script after yarn got installed:
export PATH=$HOME/.yarn/bin:$PATH
Upvotes: 3
Reputation: 1084
Solved it by using the latest official node docker image.
Since image: 6.10.0
, yarn is installed by default in the image.
But if you need node-gyp
to build any package, it needs to be installed by adding a line to the script:
yarn global add node-gyp
Upvotes: 19