我检查了几个来源,似乎有可能,但无法使其正常工作。
我想要的是,每当创建 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 和“/”。但我不确定是否有更好的方法。
答案 0 :(得分:0)
遵循此文档:Deploy pull request Artifacts with Azure Pipelines,我们可以通过选择 Azure Repos 作为源工件来成功创建拉取请求部署。
如果创建了一个拉取请求,则会触发一个新的发布。正如您所发现的,构建源的源分支是 "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 了解详情。