Background:
In the pipeline step, I have added multiple scripts something like
image: drupal:9.5.11-php8.1-fpm
pipelines:
branches:
test:
- step:
script:
- scripts/pipelines/setup.sh
- scripts/pipelines/validate.sh
- scripts/pipelines/build_artifact.sh
- scripts/pipelines/deploy_artifact.sh
services:
- docker
- mysql
caches:
- docker
- node
- composer
I used an image where node and npm are unavailable, so I need to install the node using nvm in setup.sh. I am able to install node and npm and the commands successfully are running properly in the setup script.
I am using Acquia BLT in this pipeline. BLT command is running post code command hook where I am running one script (frontend_build.sh) to run npm install and npm run build.
Problem:
Inside frontend_build.sh, it is giving an error "npm command not found".
Solution Tried:
Suggestions are welcome.
Thanks very much for all the help.
Hi @Amit Sharma,
Thank you for reaching out to the community.
May we know how you're installing NPM in your build?
This is because when I tried using the base Docker image (drupal:9.5.11-php8.1-fpm), I got the same error message when running the NPM command because NPM is not available from the base Docker image.
+ npm --version bash: npm: command not found
Regards,
Mark C
Yes @Mark C I am installing the npm in my script
scripts/pipelines/setup.sh
in the above script I am installing and setting up the path of node and npm.
Also, I have checked the version. I installed the node using nvm.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Amit Sharma
Thanks for that.
Could we check if the NPM is still installed after running setup.sh script?
script:
- scripts/pipelines/setup.sh
- npm --version
- scripts/pipelines/validate.sh
- scripts/pipelines/build_artifact.sh
- scripts/pipelines/deploy_artifact.sh
You can also try installing NPM as part of the step script instead.
Let me know how it goes.
Regards,
Mark C
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi @Amit Sharma
Is frontend_build.sh running in a different step? If so, node cache only caches node_modules not the actual node install.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Saxea _Flowie_ it is running inside the same step. I have added multiple scripts in the same step for reusability in other steps.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
@Saxea _Flowie_ I am running the Acquia BLT command in the build.sh, which runs a post-code hook. Inside this hook, I am running the frontend-build.sh
BLT picks the path of npm installed in the current container. I have used this on the local but it is not working in Pipeline.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.