从 azure devop 经典部署管道获取拉取请求 ID

时间:2021-02-15 23:41:06

标签: azure-devops

我检查了几个来源,似乎有可能,但无法使其正常工作。

我想要的是,每当创建 PR 并且 PR 构建成功时,就会运行 PR 发布并创建站点(使用 PR Id 或 PR 源分支,例如 pr122--xxx.azuresite.net) .

来自this question的回答, 看起来我可以使用 release.artifacts.alias.PULLREQUEST.ID,但是当我尝试它时,这根本不起作用。同样从官方文档中,没有提到这个变量。这只适用于新的 YAML 管道吗?

由于我们的大部分东西都在经典管道中,我能想到的解决方案是解析构建源,即refs/pull/11201/merge。看起来 11201 是 Pull Request ID,所以我只需要替换 refs、pull、merge 和“/”。但我不确定是否有更好的方法。

1 个答案:

答案 0 :(得分:0)

遵循此文档:Deploy pull request Artifacts with Azure Pipelines,我们可以通过选择 Azure Repos 作为源工件来成功创建拉取请求部署。 enter image description here enter image description here 如果创建了一个拉取请求,则会触发一个新的发布。正如您所发现的,构建源的源分支是 "refs/pull/{PullRequestId}/merge",所以您是对的。

此外,如果您将 Azure Repos 设置为 primary artifact,我们可以通过使用预定义变量 Release.Artifacts.{alias}.SourceBranch 来获取拉取请求分支。在下面的例子中,我们可以使用 PowerShell task 来运行下面的命令。

Write-Host "Release.Artifacts._215.SourceBranch: $(Release.Artifacts._215.SourceBranch)

请参阅:Default variables - General Artifact 了解详情。