Gradle 版本不允许配置 git 凭据。即使这个问题是不必要的,我也会提出两种不同的可能性来解决这个问题,因为我整天都在为此苦苦挣扎。为什么?因为公司不允许我再使用 SSH,我们正在迁移到 docker 容器来分发我们的 CI 管道:
1.) 将 SSH 密钥放在用户 jenkins ~/.ssh/id_rsa 下,如下所述
2.) 在 gradle 发布之前使用“Execute shell”来配置远程:
令牌必须配置为环境变量。这是为了回答最初的问题。
3.) 使用管道可以包含更多高级功能。我把 Jenkinsfile 放在下面来执行 gradle 发布(你也可以使用sshagent (credentials: ['credential'])
,然后你不需要 git 的东西):
// 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"
}
}
}
}