我一直在构建一个构建流水线,当提交请求到主干时触发,因此我们有一个分支策略,即主干分支上的唯一更改是通过拉取请求完成的。
我希望构建流水线能够检出PR的源分支,并作为构建流水线的一部分对源分支进行一些提交。我以为我可以只使用Build.SourceBranchName
变量,但当流水线被触发时,SourceBranchName是“master”。所以我无法使用它。
有没有简单的方法来解决这个问题?
我一直在构建一个构建流水线,当提交请求到主干时触发,因此我们有一个分支策略,即主干分支上的唯一更改是通过拉取请求完成的。
我希望构建流水线能够检出PR的源分支,并作为构建流水线的一部分对源分支进行一些提交。我以为我可以只使用Build.SourceBranchName
变量,但当流水线被触发时,SourceBranchName是“master”。所以我无法使用它。
有没有简单的方法来解决这个问题?
System.PullRequest.SourceBranch
和 System.PullRequest.TargetBranch
要获取在pull request中正在审查的分支,我们应选择变量System.PullRequest.SourceBranch
。[skip ci]
或[ci skip]
用于跳过运行CI,就像UI上的选项“启用持续集成”一样。
然而,我们当前的情况是构建验证的分支策略而不是CI。尽管它们似乎在执行相同的构建任务,但这与CI非常不同。分支策略是为了保护我们的分支免受错误提交的破坏。这是一个经过验证的操作,而不是持续集成。
System.PullRequest.SourceBranch
变量来访问在拉取请求中正在被审查的分支。只有当Build.Reason
等于PullRequest
时,此变量才可用。 - LJ.[skip ci]
,则使构建跳过所有任务 - 就像这样condition: not(contains(variables['Build.SourceVersionMessage'], '[skip ci]'))
。 - LJ.