I've created a very simple pre-commit script:-
#!/usr/bin/env sh # Run tests npm test if [ $? -ne 0 ]; then echo "Tests failed. Aborting.." exit 1 fi exit 0
When I run git commit
at the command line (with failing tests), I get the expected exit 1 with the message Tests failed. Aborting..
.
However, If I use GitHub for Mac however I get:
.git/hooks/pre-commit: line 5: npm: command not found Tests failed. Aborting.. (256)
I'm guessing its down to npm
not being available to the execution environment that GitHub for Mac is using, but I've been tearing my hair out trying to work out how to fix this.
Resolved. As globally installed node modules end up under /usr/local/bin
I simply needed to add the following at the beginning of my pre-commit:
PATH=$PATH:/usr/local/bin:/usr/local/sbin
i.e. appending both /usr/local/bin
and /usr/local/sbin
to PATH
at the point of execution.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With