如何将Git SSH凭据传递给Jenkins中的Gradle发布插件?
我试图在我们客户的Jenkins(1.x,因此没有Jenkins文件管道)上使用Gradle…假设这是一个自由式作业,并且您使用私钥进行身份验证:如何将Git SSH凭据传递给Jenkins中的Gradle发布插件?,jenkins,gradle,gradle-release-plugin,Jenkins,Gradle,Gradle Release Plugin,我试图在我们客户的Jenkins(1.x,因此没有Jenkins文件管道)上使用Gradle…假设这是一个自由式作业,并且您使用私钥进行身份验证: 选中选项使用密文或文件。选择git凭据并输入需要导入的环境变量的名称 在Gradle build part中,将关键环境变量(以及其他变量,如果需要)作为项目属性导入:-Pkeylocation=$key\u variable\u NAME Gradle release不允许配置git凭据。即使这个问题是不必要的,我也会提出两种不同的可能性来解决这个
使用密文或文件。选择git凭据并输入需要导入的环境变量的名称
Gradle release不允许配置git凭据。即使这个问题是不必要的,我也会提出两种不同的可能性来解决这个问题,因为我整天都在努力解决这个问题。为什么?因为我不再被允许在公司中使用SSH,而我们正转向docker容器来分发我们的CI管道: 1.)如前所述,将SSH密钥放在用户jenkins~/.SSH/id_rsa下 2.)在gradle发布之前使用“Execute shell”配置远程: 令牌必须配置为。这是为了回答最初的问题 3.)管道的使用可包括更多高级功能。我将Jenkins文件放在下面以执行gradle发布(您也可以使用
sshagent(凭证:['credential'])
,然后您就不需要git了:
你解决过这个问题吗?恐怕没有。此后,客户机将Jenkins升级为可编写脚本的版本,这使得此问题变得不必要。
// GITLAB_API_TOKEN
withCredentials([string(credentialsId: 'nexususer', variable: 'nexusUsername'),
string(credentialsId: 'nexuspassword', variable: 'nexusPassword'),
string(credentialsId: 'nexussnapshoturl', variable: 'nexusSnapshotUrl'),
string(credentialsId: 'nexusreleaseurl', variable: 'nexusReleaseUrl'),
string(credentialsId: 'token', variable: 'GITLAB_API_TOKEN')]) {
if (env.BRANCH_NAME == "master") {
stage('Release') {
gitlabCommitStatus(name: 'Release') {
// Run the gradle release
sh 'git config user.email "email"'
sh 'git config user.name "name"'
sh "git remote rm origin"
sh "git remote add origin https://username:${GITLAB_API_TOKEN}@yourrepo"
sh "gradle clean release -Prelease.useAutomaticVersion=true"
}
}
}
}