Невозможно опубликовать пакет node.js, используя задание jenkins - PullRequest
0 голосов
/ 03 апреля 2019

Мне нужно создать задание jenkins для публикации пакета на npmjs.com.Исходный код пакета находится в репозитории github.

Я успешно опубликовал пакет с моего компьютера, выполнив команду 'npm publish' в консоли, но столкнулся с ошибкой, используя jenkins.

Это то, что у меня естьв моем задании 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

Кто-нибудь знает, как решить проблему?

1 Ответ

1 голос
/ 05 апреля 2019

Наконец мне удалось создать конвейер для выпуска моего пакета в npmjs. Шаги:

  1. Создание задания jenkins типа «Трубопровод».

  2. В разделе «Конвейер» выберите «Конвейерный скрипт из SCM».

  3. Выберите тип репозитория и добавьте путь к своему репо.

  4. Добавьте файл с именем 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' 

                }
            }
        }
    }
}
  1. Создайте файл с именем "jobvars.env" в папке, где установлены jenkins и вставьте в него строку:
NPMJS_TOKEN="token-generated-on-npmjs-com-in-your-profile"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...