如何从成功发布中创建 VSTS 拉取请求状态?
How to create a VSTS pull request status from a successful release?
我们有一个数据仓库类型的应用程序,因此简单的构建不足以验证拉取请求。我们有一个发布管道,可以自动触发向烟雾环境的发布。如果此部署成功,则可以完成拉取请求。
看来 Pull Request Status API 非常适合这个。但是我不知道如何从发布中获取 pullRequestId。
构建定义中有一个 $(System.PullRequest.PullRequestId) 变量,但发布定义中没有。
我目前正在测试一个 hacky 解决方案 - 在构建阶段将一个新文件写入包含 $(System.PullRequest.PullRequestId) 的 artefact 目录。然后可用于发布。希望有更简单的方法。
似乎构建是由 PR 验证触发的,而发布是由构建工件触发的。然后您可以 从预定义变量 $(Release.Artifacts.vs2017.SourceBranch)
.
中获取拉取请求 ID
由于构建是为了 PR 验证而触发的,所以源分支格式将是:
refs/pull/{PullRequestId}/merge
发布期间,您可以通过$(Release.Artifacts.vs2017.SourceBranch)
获取源码分支。然后将字符串按 /
拆分,您将获得拉取请求 ID。下面是一个示例(变量 $prid
用于拉取请求 ID):
$t="$(Release.Artifacts.vs2017.SourceBranch)"
$pr=$t -split '/'
$prid=$pr[2]
echo "the pull request id is $prid"
我们有一个数据仓库类型的应用程序,因此简单的构建不足以验证拉取请求。我们有一个发布管道,可以自动触发向烟雾环境的发布。如果此部署成功,则可以完成拉取请求。
看来 Pull Request Status API 非常适合这个。但是我不知道如何从发布中获取 pullRequestId。
构建定义中有一个 $(System.PullRequest.PullRequestId) 变量,但发布定义中没有。
我目前正在测试一个 hacky 解决方案 - 在构建阶段将一个新文件写入包含 $(System.PullRequest.PullRequestId) 的 artefact 目录。然后可用于发布。希望有更简单的方法。
似乎构建是由 PR 验证触发的,而发布是由构建工件触发的。然后您可以 从预定义变量 $(Release.Artifacts.vs2017.SourceBranch)
.
由于构建是为了 PR 验证而触发的,所以源分支格式将是:
refs/pull/{PullRequestId}/merge
发布期间,您可以通过$(Release.Artifacts.vs2017.SourceBranch)
获取源码分支。然后将字符串按 /
拆分,您将获得拉取请求 ID。下面是一个示例(变量 $prid
用于拉取请求 ID):
$t="$(Release.Artifacts.vs2017.SourceBranch)"
$pr=$t -split '/'
$prid=$pr[2]
echo "the pull request id is $prid"