为pr-merge触发器Jenkins声明式多分支管道获取拉取请求分支修订版

问题描述 投票:0回答:1

在多分支管道中,有一个选项可以构建与基本分支合并的PR。启用此选项后,GIT_COMMIT环境变量将包含合并提交的哈希,而不包含更改分支的最后一个哈希的哈希。分支修订哈希没有设置其他环境变量。

但是我希望分支修订的哈希值运行Sonar PR分析并执行其他一些报告任务。我该如何实现?

https://issues.jenkins-ci.org/browse/JENKINS-39496描述有关PullRequestSCMRevision。但是我不知道如何在声明性管道中的Jenkinsfile中调用PullRequestSCMRevision.getPullHash()函数。

git jenkins pull-request jenkins-declarative-pipeline
1个回答
0
投票

我看不到我的要求得到詹金斯的支持。但是正如@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版本的任何版本(分支,合并请求版本,合并请求合并版本)。

注意: git rev-parse $BRANCH_NAME可能无法使用请求合并修订版本管道,因为由于Jenkins进行了自动合并提交,因此此命令返回的本地分支的修订与远程分支的修订不同。

© www.soinside.com 2019 - 2024. All rights reserved.