当前位置: 首页 > 面试题库 >

jenkins管道无法将代码检入git

全昊焜
2023-03-14
问题内容

在我的jenkins管道项目中,我可以从git fine中检出代码…但是我们需要做一些git checkins,而且显然没有缓存凭据。

    stage 'Checkout'
    git url: 'git@bitbucket.org:myproj.git', branch: 'master', credentialsId: '012ce21d-e920-44ee-b6f7-08df8ab41de0', variable: 'CREDENTIALS'
    sh('git push') <---- fails with Permission denied (public key).

这是示例输出:

Entering stage Checkout
Proceeding
[Pipeline] git
 > git rev-parse --is-inside-work-tree # timeout=10
Fetching changes from the remote Git repository
 > git config remote.origin.url git@bitbucket.org:myproj # timeout=10
Fetching upstream changes from git@bitbucket.org:myproj.git
 > git --version # timeout=10
using GIT_SSH to set credentials 
 > git -c core.askpass=true fetch --tags --progress git@bitbucket.org:myproj.git +refs/heads/*:refs/remotes/origin/*
 > git rev-parse refs/remotes/origin/master^{commit} # timeout=10
 > git rev-parse refs/remotes/origin/origin/master^{commit} # timeout=10
Checking out Revision cc35402c6b39e8a1f8d55a831d2d10215d47ccd0 (refs/remotes/origin/master)
 > git config core.sparsecheckout # timeout=10
 > git checkout -f cc35402c6b39e8a1f8d55a831d2d10215d47ccd0 # timeout=10
 > git branch -a -v --no-abbrev # timeout=10
 > git branch -D master # timeout=10
 > git checkout -b master cc35402c6b39e8a1f8d55a831d2d10215d47ccd0
 > git rev-list cc35402c6b39e8a1f8d55a831d2d10215d47ccd0 # timeout=10
[Pipeline] sh
[myproj] Running shell script
+ git push --set-upstream origin master
Warning: Permanently added the RSA host key for IP address '192.192.143.2' to the list of known hosts.
Permission denied (publickey).
fatal: Could not read from remote repository.

有人对此有很好的解决方案吗?

谢谢


问题答案:

答案是使用强大的jenkins插件:

http://getmesh.io/Blog/Jenkins+2+Pipeline+101

该插件为git访问注入SSH_AUTH_SOCK环境变量



 类似资料:
  • 问题内容: 我们有一个Jenkinsfile,它使用docker插件在给定容器内运行脚本。对于某些图像,此方法工作正常,但对于其他图像,则立即失败,返回-1退出代码。我们已将错误简化为一个简单的错误。这是Jenkinsfile: 这是詹金斯的输出 有趣的是,如果睡眠时间少于1秒,则该时间过去了(但120秒睡眠在许多其他图像上也可以正常工作)。 作为参考,这是一个有效的jessie图像,一个无效的j

  • 我有一个简单的Jenkinsfile,我想在其中从工作区加载一些数据。我正在使用管道插件来利用存储库中的Jenkinsfile。构建被外包给匹配的Jenkins代理。当我尝试使用“readFile”时,我收到以下消息: Java语言io。FileNotFoundException:/path/to/jenkins/workspace/XXXXX/project/data。json(无此类文件或目录

  • 我有一个Jenkinsfile,其中构建和测试在同一个Slaver上运行。我的要求是,构建必须在一个从站(比如A)上,测试必须在另一个从站(比如B)上运行。 我刚刚设置了奴隶B,我可以看到我的奴隶A和B都在Jenkins- 以下是看到的问题: 1.)在构建阶段成功后,我得到以下错误: " java.lang.NoSuchMethodError:在步骤[archive,bat,build,catch

  • 我想使用jenkins中git的以下管道脚本 如何从git正确运行Jenkins脚本?

  • 问题内容: 我希望能够说些类似的话: 用例:我正在并行构建和测试在不同平台上的运行,并希望确保每个都获得相同的代码。它是C ++,我们建立在独立的平台上,也建立在它们之上。 如果执行上述操作,它将失败-基础代码假定给定的分支实际上是一个分支,或者得到类似以下内容的代码: 尽管没有实际答案,但我看到过有人问过这个问题,尽管有一些建议-只是喜欢隐瞒源代码,等等。这并不是我真正想要的。 该文档建议应该有

  • 问题内容: 詹金斯管道中的 代理 和 节点 之间有什么区别? 我发现了这些定义: node:管道执行的大多数工作是在一个或多个声明的节点步骤的上下文中完成的。 agent:agent指令指定整个管道或特定阶段将在Jenkins环境中执行的位置,具体取决于agent指令的放置位置。 因此,两者都用于执行管道步骤。但是什么时候使用哪个呢? 问题答案: 简单的答案是, 代理 用于 声明式 管道, 节点