如何区分不同分支的构建?

问题描述 投票:0回答:1

我正在使用 MS Azure DevOps REST API 从给定分支的最新管道版本下载工件。

为此,我首先需要找出构建定义 ID,我使用

definitions
GET 端点(然后按管道名称过滤结果)。

一旦有了这个,我就可以使用

builds
GET 端点 来获取我的构建定义 ID 的最新成功构建。

现在,我的问题是这样的 - 底层管道是为我的源存储库中的不同分支执行的。在基于 Web 的 DevOps UI 中,对于给定的管道运行,它看起来像这样:

其中,第一个源存储库/分支是托管管道 YAML 的存储库/分支。总是一样的。

第二个是我真正感兴趣的;它指示构建是从哪个发布分支执行的。

不幸的是,我无法在从 Build

 端点返回的 
builds
 数据结构
中找到此信息;至少不是在直观键入和命名的字段中。有两个名为
repository
sourceBranch
的属性,但它们仅包含有关 DevOps Web 界面中列出的 first 存储库/分支的信息。

通过公共 Azure DevOps REST API 检索信息时,如何区分不同版本分支的构建?

azure-devops azure-devops-rest-api
1个回答
0
投票

基于共享的屏幕截图和描述

底层管道是针对我的源存储库中的不同分支执行的;

第二个是我真正感兴趣的;它指示构建是从哪个发布分支执行的。

看来你已经在这个管道中定义了存储库资源,但对其用法可能存在一些误解。

您尚未共享发布工件的底层 YAML 管道的定义,我们无法了解如何定义/签出

release
存储库的
Application
分支中的存储库资源或如何发布工件。假设您使用下面的简单 YAML 管道,

trigger: none
resources:
  repositories:
  - repository: app
    type: git
    name: Application
    trigger:
      branches:
        include:
        - release*
steps:
- checkout: self
  path: self
- checkout: app
  path: app
- powershell: |
    tree $(Agent.BuildDirectory)
    Write-Host "The Triggering repo is $(Build.Repository.Name)"
    Write-Host "The Triggering branch is $(Build.SourceBranch)"
    Write-Host "The Triggering branch name is $(Build.SourceBranchName)"
  displayName: Show file structure in Agent.BuildDirectory
- publish: $(Agent.BuildDirectory)/self
  artifact: self
  displayName: Publish artifacts from self
- publish: $(Agent.BuildDirectory)/app
  artifact: $(Build.SourceBranchName)_$(Build.Repository.Name)
  displayName: Publish artifacts from app
  1. 它将由

    release*
    存储库中
    Application
    分支上的任何提交触发;

  2. 一旦触发管道,它就会将

    self
    存储库和
    app
    存储库中的代码检出到
    Agent.BuildDirectory
    下的相对路径中;
    App
    资源库中的代码是根据触发提交推送到的分支动态检出的。

  3. 管道然后继续发布别名为

    self
    $(Build.SourceBranchName)_$(Build.Repository.Name)
    的 2 个工件

  4. 要下载预期的工件,您可以使用下面的 API 和选定的工件别名。

GET https://dev.azure.com/{organization}/{project}/_apis/pipelines/{pipelineId}/runs/{runId}/artifacts?artifactName={artifactName}&api-version=7.1-preview.1
© www.soinside.com 2019 - 2024. All rights reserved.