gpt4 book ai didi

Jenkins 2 NPM_TOKEN 凭证

转载 作者:行者123 更新时间:2023-12-02 03:11:11 31 4
gpt4 key购买 nike

我正在尝试运行将使用 npm publish 的 Jenkins 2 管道(Jenkinsfile)将包发布到本地 NPM 存储库。
为了做到这一点,我尝试在 Jenkinsfile 中使用以下阶段:

stage('TEST npm whoami') {
withEnv(["PATH+NPM=${tool name: 'node-6', type: 'jenkins.plugins.nodejs.tools.NodeJSInstallation'}/bin"]) {
withCredentials([[$class: 'StringBinding', credentialsId: 'npm-token', variable: 'NPM_TOKEN']]) {
sh """
npm whoami
"""
}
}
}

目前我只运行 npm whoami一旦成功,我将用 npm publish 替换它.

这是我得到的输出:
+ npm whoami
npm ERR! Linux 4.7.5-1.el7.elrepo.x86_64
npm ERR! argv "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node-6/bin/node" "/var/lib/jenkins/tools/jenkins.plugins.nodejs.tools.NodeJSInstallation/node-6/bin/npm" "whoami"
npm ERR! node v6.5.0
npm ERR! npm v3.10.3
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`

最佳答案

从看 this GitHub issue ,好像是NPM_TOKEN不是 npm 本身识别的东西,而是 heroku(可能还有其他平台)解释的自定义环境变量。

根据该问题中的一些讨论,我所做的是创建一个项目级 .npmrc在作业执行时根据我的凭据中的 token env var,然后在继续之前再次删除该文件。例如。:

stage('TEST npm whoami') {
withCredentials([string(
credentialsId: 'npm-token',
variable: 'NPM_TOKEN')]) {
sh "echo //npm.skunkhenry.com/:_authToken=${env.NPM_TOKEN} > .npmrc"
sh 'npm whoami'
sh 'rm .npmrc'
}
}

希望这可以帮助!

关于 Jenkins 2 NPM_TOKEN 凭证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40016486/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com