npm: NPM publish: SemanticReleaseError: Invalid npm token.
Current behavior
Can’t publish with valid token using semantic-release. Running from local machine in dry run mode using:
GH_TOKEN=*** NPM_TOKEN=*** npx semantic-release
.
Running npm publish
with the same token works as expected.
npm version: 6.11.3
node version: v12.12.0
Expected behavior
Semantic-release should be able to publish to npm successfully.
Environment
- semantic-release version: 15.13.27
- CI environment: github actions
- Plugins used:
"@semantic-release/commit-analyzer",
"@semantic-release/changelog",
"@semantic-release/github
"@semantic-release/npm",
@semantic-release/release-notes-generator
- semantic-release configuration:
"release": {
"branch": "master",
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/changelog",
"@semantic-release/github",
[
"@semantic-release/npm",
{
"pkgRoot": "dist/ng-select"
}
],
"@semantic-release/release-notes-generator"
]
}
- Logs running in dry mode on local machine:
[4:12:33 PM] [semantic-release] › ℹ Running semantic-release version 15.13.27
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "verifyConditions" from "@semantic-release/changelog"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "verifyConditions" from "@semantic-release/github"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "verifyConditions" from "@semantic-release/npm"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "analyzeCommits" from "@semantic-release/commit-analyzer"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "generateNotes" from "@semantic-release/release-notes-generator"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "prepare" from "@semantic-release/changelog"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "prepare" from "@semantic-release/npm"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "publish" from "@semantic-release/github"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "publish" from "@semantic-release/npm"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "success" from "@semantic-release/github"
[4:12:33 PM] [semantic-release] › ✔ Loaded plugin "fail" from "@semantic-release/github"
[4:12:33 PM] [semantic-release] › ⚠ This run was not triggered in a known CI environment, running in dry-run mode.
[4:12:33 PM] [semantic-release] › ⚠ Run automated release from branch master in dry-run mode
[4:12:37 PM] [semantic-release] › ✔ Allowed to push to the Git repository
[4:12:37 PM] [semantic-release] › ℹ Start step "verifyConditions" of plugin "@semantic-release/changelog"
[4:12:37 PM] [semantic-release] › ✔ Completed step "verifyConditions" of plugin "@semantic-release/changelog"
[4:12:37 PM] [semantic-release] › ℹ Start step "verifyConditions" of plugin "@semantic-release/github"
[4:12:37 PM] [semantic-release] [@semantic-release/github] › ℹ Verify GitHub authentication
[4:12:37 PM] [semantic-release] › ✔ Completed step "verifyConditions" of plugin "@semantic-release/github"
[4:12:37 PM] [semantic-release] › ℹ Start step "verifyConditions" of plugin "@semantic-release/npm"
[4:12:37 PM] [semantic-release] [@semantic-release/npm] › ℹ Verify authentication for registry https://registry.npmjs.org/
https://registry.npmjs.org/
Error: Command failed with exit code 1 (EPERM): npm whoami --registry https://registry.npmjs.org/
at makeError (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/node_modules/execa/lib/error.js:59:11)
at handlePromise (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/node_modules/execa/index.js:112:26)
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async module.exports (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/lib/verify-auth.js:20:7)
at async verifyConditions (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/index.js:33:7)
at async validator (/Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/normalize.js:34:24)
at async /Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/pipeline.js:37:34
at async /Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/pipeline.js:31:3
at async Object.pluginsConf.<computed> [as verifyConditions] (/Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/index.js:80:11)
at async run (/Users/tadeus/git/ng-select/node_modules/semantic-release/index.js:84:3) {
command: 'npm whoami --registry https://registry.npmjs.org/',
exitCode: 1,
exitCodeName: 'EPERM',
stdout: '',
stderr: 'npm ERR! cb() never called!\n' +
'\n' +
'npm ERR! This is an error with npm itself. Please report this error at:\n' +
'npm ERR! <https://npm.community>\n' +
'\n' +
'npm ERR! A complete log of this run can be found in:\n' +
'npm ERR! /Users/tadeus/.npm/_logs/2019-11-01T14_12_39_078Z-debug.log',
all: 'npm ERR! cb() never called!\n' +
'\n' +
'npm ERR! This is an error with npm itself. Please report this error at:\n' +
'npm ERR! <https://npm.community>\n' +
'\n' +
'npm ERR! A complete log of this run can be found in:\n' +
'npm ERR! /Users/tadeus/.npm/_logs/2019-11-01T14_12_39_078Z-debug.log',
failed: true,
timedOut: false,
isCanceled: false,
killed: false,
signal: undefined
}
[4:12:39 PM] [semantic-release] › ✖ Failed step "verifyConditions" of plugin "@semantic-release/npm"
[4:12:39 PM] [semantic-release] › ⚠ Skip step "fail" of plugin "@semantic-release/github" in dry-run mode
[4:12:39 PM] [semantic-release] › ✖ EINVALIDNPMTOKEN Invalid npm token.
The npm token configured in the NPM_TOKEN environment variable must be a valid token allowing to publish to the registry https://registry.npmjs.org/.
If you are using Two-Factor Authentication, make configure the auth-only level is supported. semantic-release cannot publish with the default auth-and-writes level.
Please make sure to set the NPM_TOKEN environment variable in your CI with the exact value of the npm token.
AggregateError:
SemanticReleaseError: Invalid npm token.
at module.exports (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/lib/get-error.js:6:10)
at module.exports (/Users/tadeus/git/ng-select/node_modules/@semantic-release/npm/lib/verify-auth.js:23:33)
at /Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/pipeline.js:54:11
at processTicksAndRejections (internal/process/task_queues.js:93:5)
at async Object.pluginsConf.<computed> [as verifyConditions] (/Users/tadeus/git/ng-select/node_modules/semantic-release/lib/plugins/index.js:80:11)
at async run (/Users/tadeus/git/ng-select/node_modules/semantic-release/index.js:84:3)
at async module.exports (/Users/tadeus/git/ng-select/node_modules/semantic-release/index.js:170:22)
at async module.exports (/Users/tadeus/git/ng-select/node_modules/semantic-release/cli.js:55:5) {
name: 'AggregateError'
}%
About this issue
- Original URL
- State: closed
- Created 5 years ago
- Reactions: 6
- Comments: 25 (10 by maintainers)
Commits related to this issue
- chore: change yarn to npm https://github.com/semantic-release/npm/issues/215#issuecomment-549176983 — committed to mathewsmachado/styled-query-builder by mathewsmachado 3 years ago
Maybe you had an outdate version with another bug due to your lockfile that is fixed now.
The
@semantic-release/npm
plugin check first if you have a./.npmrc
or a~/.npmrc
file with an an auth token, and you do it uses that one instead of theNPM_TOKEN
environment variable.Do you have either a
./.npmrc
or a~/.npmrc
file in the environment that runs semantic-release? Please make sure you don’t have an outdated token there.