如何使用azure devops api或其他方法从拉取请求获取目标分支?
我正在尝试为3env(dev、qa、prod)创建一个构建管道,但能够选择从哪个构建管道进行构建 我们的想法是将管道保留在prod分支机构或其他回购协议上,而不是在每个环境中都有管道。 现在的问题是,在PR上,它将只在主(prod)分支上启动管道,因为它将包含yml文件如何使用azure devops api或其他方法从拉取请求获取目标分支?,azure,azure-devops,devops,azure-devops-rest-api,Azure,Azure Devops,Devops,Azure Devops Rest Api,我正在尝试为3env(dev、qa、prod)创建一个构建管道,但能够选择从哪个构建管道进行构建 我们的想法是将管道保留在prod分支机构或其他回购协议上,而不是在每个环境中都有管道。 现在的问题是,在PR上,它将只在主(prod)分支上启动管道,因为它将包含yml文件 是否有方法获取PR目标分支,以便为PR触发器添加附加条件?您仍然可以有一个生成管道。 PR触发器用于github/bitbucket存储库。您可以创建触发代码的分支策略等 每个步骤/任务的条件: 例如: - stage: B
是否有方法获取PR目标分支,以便为PR触发器添加附加条件?您仍然可以有一个生成管道。 PR触发器用于github/bitbucket存储库。您可以创建触发代码的分支策略等 每个步骤/任务的条件: 例如:
- stage: B
condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))
在该条件下,仅当源分支名为“master”时,此阶段才会运行
如何使用azure devops api或其他方法从拉取请求获取目标分支
同意Yan Sklyarenko的观点。Azure devops为我们提供了一些功能,如:
要从pull请求中获取目标分支,我们可以使用预定义变量System.PullRequest.TargetBranch
因此,我们可以使用此预定义变量作为条件:
condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))
有一个包含目标分支名称的名称:
System.PullRequest.TargetBranch
问题如何?下面的答案是否解决了您的问题,如果是,您可以接受它作为一个答案,这样它可以帮助其他社区成员谁得到相同的问题,我们可以存档此线程,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。
condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))