Jenkins Pipeline “yarn install” command not found

Jenkinsjenkins-pipeline

This is my first Jenkins script, it currently operates well on Linux but I migrate to MacOS (High Sierra) with the result of getting shell script error.

Node and yarn packages are installed on local Jenkins user. I can't figure out why this error just happens, could anyone give me a hand on this?

Here is my Jenkins file:

node {
  stage('Check out') {
    checkout scm
  }
  stage('Prepare') {
    sh "yarn install"
  }
  stage('Test') {
    sh "yarn test"
  }
  stage('Sonar') {
    if (env.BRANCH_NAME == 'dev') {
      def scannerHome = tool 'sonar scanner';
      withSonarQubeEnv('sonar') {
        sh "${scannerHome}/bin/sonar-scanner"
      }
    }
  }
}

And full log:

14:43:11 Connecting to https://api.github.com using hariklee/******

Obtained Jenkinsfile from 6c639bd70ac86cbe6a49ac0b58bcc10e3c64a375

Running in Durability level: MAX_SURVIVABILITY

[Pipeline] node

Running on Jenkins in
/Users/Shared/Jenkins/Home/workspace/wingman_423_ci_cd-7PSSGRAMBTXUQRESYCNVODXU7IZJLJLPHQOE3KYEPCSAAYAFFD4A

[Pipeline] {

[Pipeline] stage

[Pipeline] { (Check out)

[Pipeline] checkout

git rev-parse –is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository

git config remote.origin.url https://github.com/wingman-xyz/app.git # timeout=10

Fetching without tags

Fetching upstream changes from https://github.com/wingman-xyz/app.git

git –version # timeout=10

using GIT_ASKPASS to set credentials

git fetch –no-tags –progress https://github.com/wingman-xyz/app.git +refs/heads/423_ci_cd:refs/remotes/origin/423_ci_cd

Checking out Revision 6c639bd70ac86cbe6a49ac0b58bcc10e3c64a375 (423_ci_cd)

git config core.sparsecheckout # timeout=10

git checkout -f 6c639bd70ac86cbe6a49ac0b58bcc10e3c64a375

Commit message: "jenkins test"

First time build. Skipping changelog.

[Pipeline] }

[Pipeline] // stage

[Pipeline] stage

[Pipeline] { (Prepare)

[Pipeline] sh

[wingman_423_ci_cd-7PSSGRAMBTXUQRESYCNVODXU7IZJLJLPHQOE3KYEPCSAAYAFFD4A] Running shell script

  • yarn install

/Users/Shared/Jenkins/Home/workspace/wingman_423_ci_cd-7PSSGRAMBTXUQRESYCNVODXU7IZJLJLPHQOE3KYEPCSAAYAFFD4A@tmp/durable-cf573520/script.sh: line 2: yarn: command not found

[Pipeline] }

[Pipeline] // stage

[Pipeline] }

[Pipeline] // node

[Pipeline] End of Pipeline

GitHub has been notified of this commit’s build result

ERROR: script returned exit code 127

Finished: FAILURE

Best Answer

There is no yarn command in your PATH variable. Do npm install -g yarn before

stage('Prepare') {
    sh "npm install -g yarn"
    sh "yarn install"
}

If you get an error about not found npm command then you will have to add npm explicitly to your PATH using withEnv() {}

withEnv(['PATH+NODE=/something=/path/to/node/bin']) {
        stage('Prepare') {
        sh "npm install -g yarn"
        sh "yarn install"
    }
}
Related Topic