我在跟踪this tutorial:
node {
git url: 'https://github.com/joe_user/simple-maven-project-with-tests.git'
...
}
Jenkins确实有特定的"Credentials"部分,您可以在其中定义用户user & pass,然后获取ID以便在作业中使用,但如何在Pipeline指令中使用它呢?
我尝试了:
git([url: 'git@bitbucket.org:company/repo.git', branch: 'master', credentialsId: '12345-1234-4696-af25-123455'])
没有运气:
stderr: Host key verification failed.
fatal: Could not read from remote repository.
Please make sure you have the correct access rights
and the repository exists.
有没有办法在管道中配置cred,或者我必须将SSH密钥放入Jenkin的Linux用户的. ssh/authorized_keys文件中?
在理想的情况下,我希望有一个管道作业和repo-key的存储库,然后启动Docker Jenkins,并动态地添加这些作业和key,而不必在Jenkins Console中配置任何内容。
6条答案
按热度按时间ctzwtxfj1#
您可以在管线中使用以下各项:
如果你使用ssh url,那么你的凭据必须是用户名+私钥,如果你使用https克隆url而不是ssh url,那么你的凭据应该是用户名+密码。
falq053o2#
使用特定凭据显式 checkout
根据当前Jenkins作业中配置的凭据 checkout
可以在单个Jenkins文件中使用这两个阶段。
rryofs0p3#
给你一个使用git插件GitSCM的简单例子:
在您的管道中
ulydmbyx4#
如果要使用ssh凭据,
如果希望使用用户名和密码凭证,则需要使用@Serban提到http cloning。
fjaof16o5#
对于什么值得添加到讨论中...我做了什么,最终帮助了我...因为管道是在一个docker映像中的工作区中运行的,每次运行时都会清理它。我获取了在管道中的repo上执行必要操作所需的凭据,并将它们存储在一个.netrc文件中。这使我能够成功地授权git repo操作。
6g8kf2rb6#
它为我解决了