我需要在管道中比较两个远程分支。
首先,我尝试了以下命令
sh(script: "git diff --name-only origin/branch1 origin/branch2", returnStdout: true)
但詹金斯无法识别这两个分支。它只识别checkout scm提供的那个。
然后我尝试了一个提取
withCredentials([[$class: 'UsernamePasswordMultiBinding', credentialsId: 'ID',
usernameVariable: 'USERNAME', passwordVariable: 'PASSWORD']]) {
sh("git fetch origin branch 1")
}
但是我得到了以下错误:
致命:无法读取用户名' HTTP_BITBUCKET_LINK':没有此类设备或地址
我也试过了sshagent,但是我得到了同样的错误。
请您告诉我是否可以比较两个分支以及如何比较?
答案 0 :(得分:1)
我能够解决这个问题。
我将Jenkins配置为通过行为部分的ssh使用结帐源。
我使用了以下代码:
sshagent(credentials: [CREDENTIAL_GIT_SSH]) {
sh "git fetch --no-tags origin '+refs/heads/BRANCHE1:refs/remotes/origin/BRANCHE1'"
def gitDiff = sh(script: "git diff --name-only origin/BRANCHE1...origin/BRANCHE2", returnStdout: true).trim()
}