Reputation: 117
I need to create a jenkins job for publishing a package to npmjs.com. The package source code is in a github repository.
I successfully publish the package from my pc executing 'npm publish' command in console but facing an error using jenkins.
That is what i have in my jenkins job:
Specified path to the github project.
Added 'Execute Windows batch command'. The script:
git checkout master
git pull
npm publish
The console output:
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: [email protected]
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
Does any body know how to solve the problem ?
Upvotes: 0
Views: 4108
Reputation: 117
Finally I managed to create a pipeline for releasing my package to npmjs. Steps:
Create a jenkins job of the 'Pipeline' type.
In the section 'Pipeline' choose 'Pipeline script from SCM'.
Choose the repository type and add path to your repo.
Add a file called "Jenkinsfile" in the root of your project and put the below script into it.
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"
Upvotes: 6