En mi servidor, configuré el gitlab runner para usar el ejecutor de shell . Y which node da: /home/ubuntu/.nvm/versions/node/v14.11.0/bin/node .
Entonces, mi archivo gitlab-ci.yml tiene lo siguiente:
stages: - prepare - check - deploy default: before_script: - export PATH=$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin prepare: stage: prepare only: refs: - dev before_script: - export PATH=$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin script: - npm i --ignore-scripts --include=dev cache: key: $CI_COMMIT_BRANCH paths: - node_modules/ El trabajo de prepare npm: command not found y la canalización falla. Cómo resolver este problema?
Puede agregar a su secuencia de script: paso, antes de la línea de comando npm :
- echo "PATH='${PATH}'"De esa manera, puede verificar si la ruta realmente se modificó.
Intenta agregar comillas:
- export PATH="$PATH:/home/ubuntu/.nvm/versions/node/v14.11.0/bin"El ejecutor de Shell usa .profile para cargar env. Puede hacer que gitlab-runner use nvm agregando esto a gitlab-runners $HOME/.profile :
export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm