簡體   English   中英

獲取 pr-merge 觸發器 Jenkins 聲明性多分支管道的拉取請求分支修訂

[英]Get pull request branch revision for pr-merge trigger Jenkins declarative multibranch pipeline

在多分支管道中,可以選擇構建與基礎分支合並的 PR。 啟用此選項后, GIT_COMMIT 環境變量包含合並提交的哈希,而不是更改分支的最后一個哈希的哈希。 沒有使用分支修訂哈希設置其他環境變量。

但我希望分支修訂的散列運行聲納 PR 分析和其他一些報告任務。 我怎樣才能做到這一點?

https://issues.jenkins-ci.org/browse/JENKINS-39496描述了 PullRequestSCMRevision。 但我不知道如何在聲明性管道中的 Jenkinsfile 中調用 PullRequestSCMRevision.getPullHash() 函數。

我沒有看到 Jenkins 支持我的要求。 但正如@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 完成自動合並提交,該版本與遠程分支不同。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM