Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

748
Views
Node and npm not getting recognized after getting installed from shell script in gitlab ci

I am trying to install nodejs using a shell script file named install-nodejs.sh in gitlab ci job in pipeline. Installation is successful and node displays the version while within install-nodejs.sh file but when I say node -v in gitlab-ci.yml file it doesn't recognize node command, what am I doing wrong?

I am created a shell script to install nodejs and set export path but still node is not getting recognized

install-nodejs.sh file code

#!/usr/bin/env bash
set -e

command -v node > /dev/null | NOT_INSTALLED=1
if [[ "$NOT_INSTALLED" != "1" ]]
then  
  mkdir /usr/local/nvm
  NVM_DIR="/usr/local/nvm"
  NODE_VERSION="10.12.0"
  NVM_INSTALL_PATH="$NVM_DIR/versions/node/v$NODE_VERSION"
  rm /bin/sh && ln -s /bin/bash /bin/sh
  curl --silent -o- https://raw.githubusercontent.com/creationix/nvm/v0.34.0/install.sh | bash
  source ~/.nvm/nvm.sh
  nvm install $NODE_VERSION
  nvm alias default $NODE_VERSION
  nvm use default
  export NODE_PATH="$NVM_INSTALL_PATH/lib/node_modules"
  export PATH="$NVM_INSTALL_PATH/bin:$PATH"
fi

and gitlab.yml file code where i am calling this file

test_install_nodejs:
  <<: *default_job_template
  stage: build
  script:
    - ./scripts/install-nodejs.sh
    - node -v
    - npm -v
    - npm install -g newman

node -v in gitlab.yml file is not recognizing node but I can see the node installation is successful from shell file above.

over 4 years ago · Santiago Trujillo
1 answers
Answer question

0

Node is not found in the gitlab.yml file because the variables that you have defined in your install script are not available there. You can see that by yourself by calling echo $PATH just after ./scripts/install-nodejs.sh. You will see that PATH does not contain $NVM_INSTALL_PATH/bin.

The reason is that export is exporting the variables to the child process, not the parent. See Bash: export not passing variables correctly to parent.

You can make them available in the gitlab.yml file by using source:

test_install_nodejs:
  <<: *default_job_template
  stage: build
  script:
    - source ./scripts/install-nodejs.sh
    - node -v
    - npm -v
    - npm install -g newman

Note that I am assuming that install-nodejs.sh is exactly the one you have shown and does not end with exit (otherwise the yml script will end just after source).

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!