Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

github action for npm publish fails

Goal

I have manually published an open source lib to registry.npmjs.org and I want future releases to be automatically published using GitHub Actions. I have no prior experience with GitHub actions.

What I have done so far

I have put the standard GitHub action into the repository which GitHub provides for that purpose (unchanged). In its last line, it takes the automation token from npmjs.com which I have defined on the repo as environment secret NPM_TOKEN. It shows up in the repo's secrects page.

The error that I face

Run npm publish
...
npm ERR! code ENEEDAUTH
npm ERR! need auth This command requires you to be logged in.
npm ERR! need auth You need to authorize this machine using `npm adduser`

npm ERR! A complete log of this run can be found in:
npm ERR!     /home/runner/.npm/_logs/2022-01-08T00_20_52_834Z-debug.log
Error: Process completed with exit code 1.

Despite extensive web search, I do not understand

  • is there a way to verify that the automation token is picked up at all?
  • why does npm publish require npm adduser, does it indicate that the automation token has not been properly picked up? After all, the action is executed on a CI node on which I couldn't npm login. And the npm-publish.yml or its documentation shows no hint that user details need to be provided for authentication.
like image 472
observer Avatar asked Mar 14 '26 10:03

observer


1 Answers

I had some endeavours and got a similar problem. Consider the following things to look at:

  1. When creating the secret token at npmjs.com, select accessToken type as automation option not publish to bypass 2FA, otherwise ill not work.
  2. When adding npm created accessToken secret to github: What I have found going to settings > secrets, there are two ways to add secrets: In the environment or to the repository. Adding secrets to the environment will not work. You need to add it as repository secret; please see the attached image. snapshot to add repository secret
  3. Confirm the secret name in secrets matches the YML file.
like image 55
Tony Melek Avatar answered Mar 17 '26 04:03

Tony Melek



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!