在多分支管道中,有一个选项可以构建与基本分支合并的PR。启用此选项后,GIT_COMMIT环境变量将包含合并提交的哈希,而不包含更改分支的最后一个哈希的哈希。分支修订哈希没有设置其他环境变量。
但是我希望分支修订的哈希值运行Sonar PR分析并执行其他一些报告任务。我该如何实现?
https://issues.jenkins-ci.org/browse/JENKINS-39496描述有关PullRequestSCMRevision的信息。但是我不知道如何在声明性管道中的Jenkinsfile中调用PullRequestSCMRevision.getPullHash()函数。
答案 0 :(得分:1)
我看不到詹金斯支持我的要求。但是,正如@Omer在上述评论中所建议的,我们可以通过在Jenkinsfile中调用git rev-parse remotes/origin/$BRANCH_NAME
来完成工作。您可以通过在脚本化环境变量中按如下所示调用它,将新的环境变量引入声明性管道的构建环境。
REVISION = """${
sh(
returnStdout: true,
script: '''
if [ ${CHANGE_ID+x} ]; then
git rev-parse remotes/origin/$BRANCH_NAME
else
echo "$GIT_COMMIT"
fi
'''
).trim()
}"""
然后,您可以使用REVISION
环境变量来引用git版本的任何版本(分支,pull request版本,pull request合并版本)。
注意::git rev-parse $BRANCH_NAME
可能无法使用请求合并修订版本管道,因为该命令返回的本地分支的修订版与远程分支的修订版不同,这归因于詹金斯。