Лерну публиковать с помощью конвейера Дженкинса - PullRequest
0 голосов
/ 27 июня 2018

Я переживал кошмар, который пытается заставить Лерну публиковаться в моем ci pipe.

Мне удалось получить сценарии из git для проверки тегов, и я обнаружил плагин withNPM pipe. Поскольку я использую lerna для публикации нескольких пакетов, мне нужно переместить файл .npmrc, который плагин создает в рабочей области, в корень домашнего каталога, чтобы все пакеты могли получить к нему доступ.

Плагин NPM использует файл конфигурации jenkins для создания файла .npmrc. Который выглядит так:

//registry.npmjs.com/:_authToken=TOKEN

Вот что у меня есть в моем конвейере Дженкинса.

stage('lerna publish') {
    steps {
        withCredentials([sshUserPrivateKey(credentialsId: 'cb8acd82-3a50-4a94-9d5f-44b04856e6fd', keyFileVariable: 'GITHUB_KEY')]) {
            sh 'echo ssh -i $GITHUB_KEY -l git -o StrictHostKeyChecking=no \\"\\$@\\" > ./run_ssh.sh'
            sh 'chmod +x ./run_ssh.sh'
            withEnv(['GIT_SSH=./run_ssh.sh']) {
                withNPM(npmrcConfig: 'da4e5199-b04b-41b6-a03f-dfbcc344f701') {
                    sh "rm -rf ~/.npmrc"
                    sh 'mv ./.npmrc ~/.npmrc'
                    sh 'npm config set registry https://registry.npmjs.com/'
                    sh 'git config --global user.email "thomas@reggi.com"'
                    sh 'git config --global user.name "reggi"'
                    sh 'git checkout master'
                    sh 'git pull origin master --force'
                    sh 'npm run lerna-publish'
                }
            }
        }
    }
}

Вот ошибка:

lerna info auto-confirmed 
lerna info publish Publishing packages to npm...
lerna ERR! npm publish --ignore-scripts exited 1 in '@reggi/help.filter-until'
lerna ERR! npm publish --ignore-scripts stderr:
npm notice 
npm notice package: @reggi/help.filter-until@0.0.20
npm notice === Tarball Contents === 
npm notice 1.5kB package.json  
npm notice 609B  index.build.js
npm notice === Tarball Details === 
npm notice name:          @reggi/help.filter-until                
npm notice version:       0.0.20                                  
npm notice package size:  997 B                                   
npm notice unpacked size: 2.1 kB                                  
npm notice shasum:        a6db6d4dc02f05548c22fe2e034832ac02252633
npm notice integrity:     sha512-6oAFaXqZMREsh[...]GnMcnIxXUBINg==
npm notice total files:   2                                       
npm notice 
npm ERR! code ENEEDAUTH
npm ERR! need auth auth required for publishing
npm ERR! need auth You need to authorize this machine using `npm adduser`

Я обнаружил, что не согласен с указанными выше URL-адресами, и изменил их оба на .com, и теперь я получаю эту проблему:

lerna info auto-confirmed 
lerna info publish Publishing packages to npm...
lerna ERR! npm publish --ignore-scripts exited 1 in '@reggi/help.filter-until'
lerna ERR! npm publish --ignore-scripts stderr:
npm notice 
npm notice package: @reggi/help.filter-until@0.0.23
npm notice === Tarball Contents === 
npm notice 1.5kB package.json  
npm notice 609B  index.build.js
npm notice === Tarball Details === 
npm notice name:          @reggi/help.filter-until                
npm notice version:       0.0.23                                  
npm notice package size:  1.0 kB                                  
npm notice unpacked size: 2.1 kB                                  
npm notice shasum:        60ee325b219abdae06a75cfe45bc66096f715187
npm notice integrity:     sha512-o4ahyOWAsUk3j[...]O/3MH2Tpv1tOQ==
npm notice total files:   2                                       
npm notice 
npm ERR! publish Failed PUT 404
npm ERR! code E404
npm ERR! 404 Not found : @reggi/help.filter-until
npm ERR! 404 
npm ERR! 404  '@reggi/help.filter-until' is not in the npm registry.
npm ERR! 404 You should bug the author to publish it (or use the name yourself!)
npm ERR! 404 
npm ERR! 404 Note that you can also install from a
npm ERR! 404 tarball, folder, http url, or git url.

1 Ответ

0 голосов
/ 28 июня 2018

У меня есть настройка токена для домена .org, а для реестра задан домен .com. (

...