【问题标题】:Get pull request Id from azure devop classic deployment pipeline从 azure devops 经典部署管道获取拉取请求 ID
【发布时间】:2021-02-16 10:35:20
【问题描述】:

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

我想要的是,每当创建 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 和“/”。但我不确定是否有更好的方法。

【问题讨论】:

  • 你好,大旭,我的回答有帮助吗?请检查并告知结果,非常感谢。

标签: azure-devops


【解决方案1】:

按照此文档: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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多