如何在 运行 Azure 管道中使用标记在提交时获取 git 分支?

How to get git branch at commit with tag at run Azure pipeline?

在 Azure Pipeline 中,可以使用预定义的构建变量(DevOps 服务)Build.SourceBranch 和 Build.SourceBranchName,但它们在带有标签的情况下提交时的值是标签。

在文档中。 https://docs.microsoft.com/en-us/azure/devops/pipelines/build/variables?view=azure-devops&tabs=yaml#build-variables-devops-services写成

如文档中所述。如果管道由标记触发。然后变量 Build.SourceBranch 和 Build.SourceBranchName 将是标签名称。

但是,您可以使用 git 命令(git branch -r --contains $(Build.SourceBranchName) | grep -v $(Build.SourceVersion)) 来检索标签指向的分支名称。

如果要使用分支名称作为变量,可以使用logging commands(echo "##vso[task.setvariable variable=CurrentBranch]$branch")定义一个变量。对于以下示例:

- powershell: |
     #get the branch name
     $branch = git branch -r --contains $(Build.SourceBranchName) | grep -v $(Build.SourceVersion)
     
     #define varialbe CurrentBranch to hold the value.
     echo "##vso[task.setvariable variable=CurrentBranch]$branch" 

- powershell: echo "$(CurrentBranch)"  #use the branch name in the following steps by referring to $(CurrentBranch)