Azure Devops 从 PR 触发器构建管道获取源分支

Sha*_*ear 4 build-pipeline azure-devops

因此,我一直在构建一个构建管道,每当向 master 发出拉取请求时就会触发该管道,因此我们有一个分支策略,使得对 master 分支的唯一更改是通过拉取请求。

我希望构建管道检查 PR 的源分支,并作为构建管道的一部分对源分支进行一些提交。我以为我可以只使用该Build.SourceBranchName变量,但是当触发管道时,SourceBranchName 是 master。所以我无法使用它。

有什么简单的方法可以做到这一点吗?

Leo*_*SFT 5

\n

我希望构建管道能够检查 PR 的源分支

\n
\n

要检查 PR 的源分支,您可以使用预定义的系统变量

\n

System.PullRequest.SourceBranchSystem.PullRequest.TargetBranch

\n

要获取拉取请求中正在审查的分支,我们应该选择变量System.PullRequest.SourceBranch

\n
\n

现在的问题是,由于对 PR 的新提交,它再次运行管道,这不应该发生,因为我在提交消息中有 [skip ci]。

\n
\n

我们知道,[skip ci][ci skip]用于跳过运行 CI,如选项\n启用持续集成在 UI 上

\n

在此输入图像描述

\n

然而,我们当前的场景是用于构建验证的分支策略而不是 CI。这与 CI 有很大不同,尽管它们似乎在执行相同的构建任务。分支机构政策是为了保护我们的分支机构免受错误提交的破坏。这是经过验证的操作,而不是持续集成。

\n

有关更多详细信息,请查看文档“跳过 CI 进行单独提交” 。

\n

因此,这是两种不同的场景,我们无法将 CI 设置应用于分支策略。

\n

其次,分支策略用于保护我们的分支,任何提交都需要通过分支策略进行验证,虽然有时我们可以知道我们的修改不需要构建验证,但我们不确定是否有任何地方我们忽略了这一点导致我们的目标分支被破坏。跳过不必要的验证会给我们带来一些建设上的便利,但以它带来的风险衡量来说,这些便利是可以忽略不计的,所以我们不建议跳过分支策略的验证。

\n

如果您坚持跳过构建验证,您可以尝试 LJ\xe2\x80\x99s 的建议。

\n