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

时间:2020-09-01 12:20:27

标签: azure-devops build-pipeline

因此,我一直在构建构建管道,每当对主服务器执行拉取请求时都会触发该管道,因此我们有一个分支策略,对主分支的唯一更改是通过拉取请求。

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

有什么简单的方法吗?

1 个答案:

答案 0 :(得分:1)

我希望构建管道检出PR的源分支

要签出PR的源分支,可以使用关于PR的predefined system variables

System.PullRequest.SourceBranchSystem.PullRequest.TargetBranch

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

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

我们知道,[skip ci][ci skip]用于跳过运行CI ,就像该选项 在用户界面上启用持续集成

enter image description here

但是,我们当前的方案是用于构建验证的分支策略,而不是CI。尽管CI似乎在执行相同的构建任务,但这与CI有很大不同。分支机构政策是为了防止分支机构因错误的提交而遭到破坏。这是经过验证的操作,而不是持续集成。

查看文档Skipping CI for individual commits,了解更多详细信息。

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

第二,分支策略用于保护我们的分支,任何提交都需要通过分支策略进行验证,尽管有时我们可以知道我们的修改不需要构建验证,但是我们不确定是否有任何地方我们可以忽略导致我们的目标分支被破坏。跳过不必要的验证会给我们带来一些施工上的便利,但是通过它带来的风险衡量,这些便利可以忽略不计,因此我们不建议跳过分支机构策略的验证。

如果您坚持不执行Build Validation,则可以尝试LJ的建议。