簡體   English   中英

如何將 git 提交 hash 分配給 Jenkins 文件中的變量

[英]How to assign git commit hash to a variable in Jenkins File

我正在嘗試將 git 提交 hash 分配給 Jenkins 管道中定義的變量,如下所示

GIT_COMMIT_HASH = sh "(git log -n 1 --pretty=format:'%H')"

這將在 Jenkins 構建日志中打印提交 hash,但無法分配該值。

當我嘗試使用打印值時

steps{
    script {
                GIT_COMMIT_HASH = sh "(git log -n 1 --pretty=format:'%H')"

                echo "**************************************************"
                echo "${GIT_COMMIT_HASH}"
                echo "**************************************************"
    }
}

這將導致 null

我該如何分配價值?

你必須告訴sh腳本將stdout返回給你的腳本,而不是僅僅將它轉儲到stdout。

GIT_COMMIT_HASH = sh (script: "git log -n 1 --pretty=format:'%H'", returnStdout: true)

您可以在環境塊中使用它

GITCOMMIT="${sh(returnStdout: true, script: 'git rev-parse HEAD')}"

您可以定義一個助手 function 然后在您的管道中調用它

def getCommitSha() {
  return sh(returnStdout: true, script: 'git rev-parse HEAD')
}

// to an env var
env.GIT_COMMIT_HASH = getCommitSha()

// to a var within the pipeline
GIT_COMMIT_HASH = getCommitSha()

為什么不直接使用內置的環境變量GIT_COMMIT<\/code> ?

"

暫無
暫無

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

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