从由标签推送触发的另一个管道触发 Azure DevOps 管道

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

基于这篇文章从另一个管道触发Azure Devops管道,我尝试将依赖管道配置为仅在源管道由标签推送触发时运行。以下是两个管道的配置:

源管道

trigger:
  branches:
    include: # branch names which will trigger a build
    - main
  tags:
    include:
    - '*'
pr: none

steps:
  # required to cause pipeline triggering downstream
  - task: CopyFiles@2
    inputs:
      contents: $(System.DefaultWorkingDirectory)/**/*.yml
      targetFolder: $(Build.ArtifactStagingDirectory)
  - task: PublishBuildArtifacts@1
    inputs:
      pathtoPublish: $(Build.ArtifactStagingDirectory)
      artifactName: dummy-$(Build.BuildId)

取决于管道

trigger: none

pr: none

resources:
  pipelines:
    - pipeline: source
      # project: Pipelining
      source: source
      trigger: 
        branches:
          include:
          - main
        tags:
        - '*'

steps:
  - checkout: none
  - script: echo 'triggered depends'

结果是depends pipeline没有被触发。

我尝试调整依赖管道的标记触发器配置,旨在指定特定标记,而不是按照 Azure Pipelines YAML 架构上的文档使用通配符“*”https://learn.microsoft.com/en -us/azure/devops/pipelines/process/resources?view=azure-devops&tabs=schema#define-a-pipelines-resource.

但是,我不确定Azure Pipelines是否支持在触发另一个管道后仅根据标签触发管道,或者标签是否主要用于过滤触发事件。

azure azure-devops azure-pipelines azure-pipelines-yaml
1个回答
0
投票

如果我没记错的话,像

*
这样的通配符可以用来过滤分支,但不能用来过滤标签。

所以,而不是:

resources:
  pipelines:
    - pipeline: source
      # project: Pipelining
      source: source
      trigger: 
        branches:
          include:
          - main
        tags:
        - '*'

尝试:

resources:
  pipelines:
    - pipeline: source
      # project: Pipelining
      source: source
      trigger: 
        branches:
          include:
          - main
        tags:
        - mytag

请注意,如果您包含多个标签,则只有当所有标签都添加到源管道时才会触发构建。

© www.soinside.com 2019 - 2024. All rights reserved.