2

编辑:请忽略关于tags- 正如其中一个答案指出的那样,这来自设计文档并且尚未完全实施。我主要关心的是branch房产。


问题

管道资源branch( docs ) 和tags(在 GitHub 上找到但不是 docs ) 属性如何工作?该version属性正确选择了资源的默认版本,但branch似乎tags什么也没做。

我希望branch类似地默认使用该分支作为源的最新运行,并tags默认使用这些标签的最新运行。是坏了还是我误解了这种行为?

测试

我有两条管道要串联运行:

  • 测试构建在主触发器上运行或手动运行并发布工件(尝试构建和管道工件)
  • Test-Release 有一个 Test-Build 管道资源

现在我尝试了 3 种不同的测试:

  1. 指定version资源的属性。成功:资源正确选择了该版本。
  2. 指定branch资源的属性。失败:默认资源将是最新的,即使来自不同的分支。
  3. 指定tags资源的属性。失败:默认资源将是最新的,即使没有这些标签。

示例文件

测试构建

trigger:
- master

pool:
  vmImage: 'ubuntu-latest'

steps:
- task: PublishPipelineArtifact@1
  inputs:
    targetPath: '$(Pipeline.Workspace)'
    artifact: 'drop'
    publishLocation: 'pipeline'

测试发布

trigger: none

resources:
  pipelines:
  - pipeline: TestBuild
    source: Test-Build
    branch: master

jobs:
- deployment: TestDeployment
  environment: Test
  pool:
    vmImage: 'ubuntu-latest'
  strategy:
    runOnce:
      deploy:
        steps:
        - script: echo Deploying!
4

2 回答 2

1

经过大量的测试,我想我真的想通了。

我相信这纯粹是一个 UI 错误。UI 将显示所选的最新版本,即使它来自不同的分支。但是,如果您在不手动更改选择的情况下继续运行管道,那么它将正确使用来自正确分支的最新构建,尽管它在 UI 中显示了不同的默认选择。

正如 Leo Liu-MSFT 指出的那样,该tags属性来自设计文档,尚未完全实施。

在这里打开了一个问题,并完整记录了该问题的演示。

于 2020-07-17T01:19:03.270 回答
0

Azure 管道资源分支

事实上,我也可以在我这边重现这个问题。那是因为该文档是设计文档。

您可以检查该文档标题

在此处输入图像描述

此存储库中的设计文档是在 Azure Pipelines 开发期间的不同时间创建的,以支持对设计过程的协作贡献。设计文件用于,

  • 考虑实施但从未实施的功能
  • 已经实现的功能
  • 功能的未来想法

此 repo 中的设计文档可能不代表 Azure Pipelines 功能的当前状态

显然,这是一个尚未完全实现的功能。这就是您无法获得该工作的原因。你可以期待它的到来,我相信它很快就会和我们见面。

更新:

我测试了这个Branch功能,但似乎与我们的预期有差距。

一开始,我得到的结果和你一样。默认资源将是最新的,即使来自不同的分支。然后我再次查看文档,发现:

定义资源触发器时,如果其管道资源来自与当前管道相同的存储库,则触发遵循引发事件的同一分支和提交。但如果管道资源来自不同的存储库,则在默认分支上触发当前管道。

触发器的默认分支

资源触发器是根据您的 YAML 的默认分支配置(即 master)创建的。但是,如果要从不同的分支配置资源触发器,则需要更改管道的默认分支。

所以,让它发挥作用。我为不同的分支创建了两个 Test-Release yml 文件:

主分支:

trigger: none

    resources:
      pipelines:
      - pipeline: TestBuild
        source: Test-Build
        branch: master

开发分支:

trigger: none

    resources:
      pipelines:
      - pipeline: TestBuild
        source: Test-Build
        branch: Dev

我们必须手动更改管道的手动和计划构建的默认分支Test-Release

在此处输入图像描述

在这种情况下,我们可以使分支功能正常工作。

于 2020-07-15T09:42:30.187 回答