我正在写一份工作 - 种子工作。种子作业需要能够从github.com或我公司的github企业服务器生成。我想保留一份工作,而不是两份工作。
在每种情况下,我都希望jenkins能够通过身份验证。所以要做到这一点,我将信用卡硬编码到脚本中。但是我对此并不满意。我宁愿在种子作业上添加Credentials参数。
问题是,Creds参数似乎将en ENV变量添加到包含USERID / PASSWORD的脚本中。 http://steve-jansen.github.io/blog/2014/12/16/parsing-jenkins-secrets-in-a-shell-script/
但是,git jobdsl似乎需要一个凭据ID,而不是USERID / PASSWORD。
如何解决这个僵局?
scm {
git {
remote {
name('origin')
url(repo)
credentials(myCredential)
}
branch('master')
}
}
答案 0 :(得分:4)
可以在官方维基page上找到Job DSL处理凭据的方式的一个很好的介绍。
两个示例说明了如何将用户密码传递给Jenkins作业:
Template.messagestpl.helpers({
messagesList: function(){
var conversation = Session.get('conversation');
return conversation.messages();
}
答案 1 :(得分:2)
添加上面Duane的答案,CredentialID是存储在Jenkins中的凭据的唯一ID。您还可以提供自己的ID,以便以有意义的方式识别它。
在job-dsl脚本中使用上图中显示的此ID,它应该适合您。
和平。
答案 2 :(得分:0)
事实证明,问题的前提是错误的。 CredentialsPlugin 1.7将变量设置为credentialID。