lerna发表在Jenkins" git remote update"失败"无法从远程存储库读取。"

时间:2018-04-24 03:51:06

标签: node.js git jenkins github lerna

我正在尝试设置lerna jenkins以便在我的所有测试通过后发布。我有命令在运行,但它失败了。

我无法找到有关如何使其发挥作用的任何文档。我需要这个命令来访问将lerna标签以及更新的版本号推送到主分支,我还需要Jenkins不要陷入无限循环。

我的第一个问题是:

> lerna publish --yes --cd-version=patch

lerna info version 3.0.0-beta.17
lerna info versioning independent
lerna ERR! ENOGIT Detached git HEAD, please checkout a branch to publish changes.
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! abide@1.0.0 publish: `lerna publish --yes --cd-version=patch`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the abide@1.0.0 publish script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/lib/jenkins/.npm/_logs/2018-04-24T03_18_59_152Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! abide@1.0.0 jenkins: `npm run versions && npm run test && npm run publish`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the abide@1.0.0 jenkins script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/lib/jenkins/.npm/_logs/2018-04-24T03_18_59_167Z-debug.log
Build step 'Execute shell' marked build as failure
Finished: FAILURE

我通过这样做解决了这个问题: Jenkins Git plugin detached HEAD

以下是我设置的所有内容:

enter image description here

现在我遇到了这个问题:

> lerna publish --yes --cd-version=patch

lerna info version 3.0.0-beta.17
lerna info versioning independent
lerna ERR! Error: Command failed: git remote update
lerna ERR! Permission denied (publickey).
lerna ERR! fatal: Could not read from remote repository.
lerna ERR! 
lerna ERR! Please make sure you have the correct access rights
lerna ERR! and the repository exists.
lerna ERR! error: Could not fetch origin
lerna ERR! 
lerna ERR! Fetching origin
lerna ERR! 
lerna ERR!     at makeError (/var/lib/jenkins/workspace/abide/node_modules/@lerna/child-process/node_modules/execa/index.js:169:9)
lerna ERR!     at Function.module.exports.sync (/var/lib/jenkins/workspace/abide/node_modules/@lerna/child-process/node_modules/execa/index.js:338:15)
lerna ERR!     at Object.execSync (/var/lib/jenkins/workspace/abide/node_modules/@lerna/child-process/index.js:21:16)
lerna ERR!     at Object.isBehindUpstream (/var/lib/jenkins/workspace/abide/node_modules/@lerna/git-utils/index.js:206:25)
lerna ERR!     at PublishCommand.initialize (/var/lib/jenkins/workspace/abide/node_modules/@lerna/publish/index.js:92:24)
lerna ERR!     at Promise.resolve.then (/var/lib/jenkins/workspace/abide/node_modules/@lerna/command/index.js:228:24)
lerna ERR! lerna Command failed: git remote update
lerna ERR! lerna Permission denied (publickey).
lerna ERR! lerna fatal: Could not read from remote repository.
lerna ERR! lerna 
lerna ERR! lerna Please make sure you have the correct access rights
lerna ERR! lerna and the repository exists.
lerna ERR! lerna error: Could not fetch origin
lerna ERR! lerna 
lerna ERR! lerna Fetching origin
lerna ERR! lerna 
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! abide@1.0.0 publish: `lerna publish --yes --cd-version=patch`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the abide@1.0.0 publish script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/lib/jenkins/.npm/_logs/2018-04-24T03_29_06_133Z-debug.log
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! abide@1.0.0 jenkins: `npm run versions && npm run test && npm run publish`
npm ERR! Exit status 1
npm ERR! 
npm ERR! Failed at the abide@1.0.0 jenkins script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.

npm ERR! A complete log of this run can be found in:
npm ERR!     /var/lib/jenkins/.npm/_logs/2018-04-24T03_29_06_144Z-debug.log
Build step 'Execute shell' marked build as failure
Finished: FAILURE

如何让lerna publish在Jenkins工作?

2 个答案:

答案 0 :(得分:0)

我进入jenkins框并cd进入工作区。

我跑了git remote update并且它发出了这个:

  

警告:永久性地将IP地址为“192.30.253.112”的RSA主机密钥添加到已知主机列表中。

似乎我没有添加github的IP。

答案 1 :(得分:0)

您需要确保Jenkins在Jenkins框上运行的帐户:

如果您拥有正确的~/.ssh/id_rsa(.pub)私钥/公钥,Jenkins必须与该用户一起运行〜以反映正确的主页。

如果您可以连接到Jenkins机器,则可以使用以下命令测试您的ssh连接:

cd /apth/to/repo
git remote -v
  # should return an ssh URL
  # like:
  # git@aserver.com
ssh -T git@aserver.com

OP ThomasReggi确认帐户问题in the comments

  

我已通过root进入机器SSH,可以查看访问权限   我正在向用户提取repo,并使用Gi​​t插件在Jenkins中输入密钥,但现在lerna正在该插件外部运行,并且需要ssh访问repo并且在用户级别不可用。

     

我需要做的就是添加SSH代理插件,在我的工作配置中使用我用来设置GitHub插件的相同SSH凭据。