我需要创建一个詹金斯工作来将软件包发布到npmjs.com。软件包的源代码在github仓库中。
我在控制台中通过执行“ npm publish”命令从PC成功发布了软件包,但是使用jenkins遇到了错误。
这就是我在詹金斯工作中所拥有的:
github项目的指定路径。
添加了“执行Windows批处理命令”。脚本:
git checkout master
git pull
npm publish
控制台输出:
C:\Program Files (x86)\Jenkins\workspace\js-agent-cucumber-release>git checkout master
Your branch is behind 'origin/master' by 2 commits, and can be fast-forwarded.
(use "git pull" to update your local branch)
Previous HEAD position was fbd7040 Update package.json
Switched to branch 'master'
C:\Program Files (x86)\Jenkins\workspace\js-agent-cucumber-release>git pull
Updating 27de403..fbd7040
Fast-forward
package.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
C:\Program Files (x86)\Jenkins\workspace\js-agent-cucumber-release>npm publish
npm notice
npm notice package: reportportal-agent-cucumber@2.0.5
npm notice === Tarball Contents ===
npm notice 1.4kB package.json
npm notice 49B .eslintrc.js
npm notice 11.6kB LICENSE
npm notice 11.3kB README.md
npm notice 15.6kB modules/cucumber-epam-reportportal-handler.js
npm notice 191B modules/index.js
npm notice 1.3kB modules/loggerWorld.js
npm notice 267B testSample/config/rpConfig.json
npm notice 1.4kB testSample/cuceLaunch.js
npm notice 234B testSample/features/noStepDef.feature
npm notice 222B testSample/features/passed.feature
npm notice 285B testSample/features/scenarioOutline.feature
npm notice 362B testSample/features/step_definitions/support/handlers.js
npm notice 139B testSample/features/step_definitions/support/hooks.js
npm notice 748B testSample/features/step_definitions/support/world.js
npm notice 2.5kB testSample/features/step_definitions/waiting.js
npm notice 340B testSample/features/table.feature
npm notice 374B testSample/features/webDriverFailed.feature
npm notice 327B testSample/package.json
npm notice 820B testSample/protractor.conf.js
npm notice 291B testSample/protractor/features/failedProtractor.feature
npm notice 184B testSample/protractor/features/noSuchElementProtractor.feature
npm notice 217B testSample/protractor/features/protractor.feature
npm notice 954B testSample/protractor/features/step_definitions/protractorSteps.js
npm notice 368B testSample/protractor/features/step_definitions/support/handlers.js
npm notice 136B testSample/protractor/features/step_definitions/support/hooks.js
npm notice 216B testSample/protractor/features/step_definitions/support/world.js
npm notice 6B testSample/reports/report.json
npm notice === Tarball Details ===
npm notice name: reportportal-agent-cucumber
npm notice version: 2.0.5
npm notice package size: 15.3 kB
npm notice unpacked size: 51.9 kB
npm notice shasum: 478e6712549cfd3b0d472091409ef248625aa2e1
npm notice integrity: sha512-NpE2GRG6a9YV7[...]DdxhC8MtZbISA==
npm notice total files: 28
npm notice
npm ERR! path C:\WINDOWS\TEMP\npm-9528-4708d294\tmp\fromDir-47da48b4\package.tgz
npm ERR! code EPERM
npm ERR! errno -4048
npm ERR! syscall unlink
npm ERR! Error: EPERM: operation not permitted, unlink 'C:\WINDOWS\TEMP\npm-9528-4708d294\tmp\fromDir-47da48b4\package.tgz'
npm ERR! { [Error: EPERM: operation not permitted, unlink 'C:\WINDOWS\TEMP\npm-9528-4708d294\tmp\fromDir-47da48b4\package.tgz']
npm ERR! cause:
npm ERR! { Error: EPERM: operation not permitted, unlink 'C:\WINDOWS\TEMP\npm-9528-4708d294\tmp\fromDir-47da48b4\package.tgz'
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink',
npm ERR! path:
npm ERR! 'C:\\WINDOWS\\TEMP\\npm-9528-4708d294\\tmp\\fromDir-47da48b4\\package.tgz' },
npm ERR! isOperational: true,
npm ERR! stack:
npm ERR! 'Error: EPERM: operation not permitted, unlink \'C:\\WINDOWS\\TEMP\\npm-9528-4708d294\\tmp\\fromDir-47da48b4\\package.tgz\'',
npm ERR! errno: -4048,
npm ERR! code: 'EPERM',
npm ERR! syscall: 'unlink',
npm ERR! path:
npm ERR! 'C:\\WINDOWS\\TEMP\\npm-9528-4708d294\\tmp\\fromDir-47da48b4\\package.tgz' }
npm ERR!
npm ERR! The operation was rejected by your operating system.
npm ERR! It's possible that the file was already in use (by a text editor or antivirus),
npm ERR! or that you lack permissions to access it.
npm ERR!
npm ERR! If you believe this might be a permissions issue, please double-check the
npm ERR! permissions of the file and its containing directories, or try running
npm ERR! the command again as root/Administrator (though this is not recommended).
npm ERR! A complete log of this run can be found in:
npm ERR! C:\WINDOWS\system32\config\systemprofile\AppData\Roaming\npm-cache\_logs\2019-04-03T14_18_29_316Z-debug.log
Build step 'Execute Windows batch command' marked build as failure
Finished: FAILURE
任何人都知道如何解决问题吗?
答案 0 :(得分:0)
最后,我设法创建了一个管道,用于将程序包发布到npmjs。步骤:
创建“管道”类型的詹金斯工作。
在“管道”部分中,选择“来自SCM的管道脚本”。
选择存储库类型并将路径添加到您的存储库。
在项目的根目录中添加一个名为“ Jenkinsfile”的文件,并将以下脚本放入其中。
pipeline {
agent {
docker {
image 'node:10-alpine'
args '-u root'
}
}
stages {
stage('Install') {
steps {
sh 'npm install'
}
}
stage('Publish') {
steps {
load "$JENKINS_HOME/jobvars.env"
withEnv(["TOKEN=${NPMJS_TOKEN}"]) {
sh 'echo "//registry.npmjs.org/:_authToken=${TOKEN}" >> ~/.npmrc'
sh 'npm publish'
}
}
}
}
}
NPMJS_TOKEN="token-generated-on-npmjs-com-in-your-profile"