【问题标题】:how to get target branch from a pull request using azure devops api or other methods?如何使用 azure devops api 或其他方法从拉取请求中获取目标分支?
【发布时间】:2020-11-02 12:24:25
【问题描述】:

我正在尝试为 3 个 env(dev、qa、prod)创建一个构建管道,但能够选择从哪个构建管道。

这个想法是将管道保留在 prod 分支或另一个 repo 上,而不是在每个环境中都有它。 现在的问题是,在 PR 上它只会在 master(prod) 分支上启动管道,因为它应该包含 yml 文件。

有没有办法获取 PR 目标分支以便为 PR 触发器添加额外的条件?

【问题讨论】:

  • 有一个predefined system variable 包含目标分支的名称:System.PullRequest.TargetBranch
  • 这个问题怎么样?下面的答案是否解决了您的问题,如果是,您可以接受它作为答案,这样它可以帮助遇到同样问题的其他社区成员,我们可以存档这个帖子,谢谢。如果没有,请告诉我们您是否需要进一步的帮助。

标签: azure azure-devops devops azure-devops-rest-api


【解决方案1】:

您仍然可以拥有一个构建管道。 PR 触发器用于 github/bitbucket 存储库。您可以创建触发您的代码等的分支策略。

您可以在每个步骤/任务中拥有的条件: conditions in Azure DevOps 例如:

- stage: B
  condition: and(succeeded(), eq(variables['build.sourceBranch'], 'refs/heads/master'))

只有当源分支被命名为“master”时,这个阶段才会运行

【讨论】:

    【解决方案2】:

    如何使用 azure devops api 或其他方法从拉取请求中获取目标分支?

    同意 Yan Sklyarenko 的观点。 Azure devops 为我们提供了一些predefined variables,比如:

    System.PullRequest.IsFork
    System.PullRequest.PullRequestId
    System.PullRequest.PullRequestNumber
    System.PullRequest.SourceBranch
    System.PullRequest.SourceRepositoryURI
    System.PullRequest.TargetBranch
    

    要从拉取请求中获取目标分支,我们可以使用预定义变量System.PullRequest.TargetBranch

    所以,我们可以使用这个预定义的变量作为条件:

    condition: and(succeeded(), eq(variables['System.PullRequest.TargetBranch'], 'refs/heads/master'))
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-10-01
      • 1970-01-01
      • 2021-03-08
      • 1970-01-01
      • 2020-02-23
      • 2022-01-11
      • 2020-01-02
      • 1970-01-01
      相关资源
      最近更新 更多