YAML 发布管道由多天前完全运行的构建自动触发

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

我有一个经典的构建管道和一个 YAML 发布管道,其 YAML 触发器如下所示:

resources:
  pipelines:
  - pipeline: BuildPipelineCI
    source: BuildPipelineCI
    trigger: true

trigger: none

这意味着,只要构建管道上发生新的绿色构建,YAML 发布管道就会自动触发。

有时,我注意到这个 YAML 管道会被非常旧的构建自动触发,这些构建已经在很多天前完成,只是因为它们最近被标记了一些标签。

向已完成的构建运行添加标签是否被视为触发我的 YAML 管道的构建完成事件?我怎样才能避免这种情况?

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

trigger: true
基本上意味着:“当 BuildPipelineCI
 的任何
运行完成时运行此管道”。

您可以通过基于分支、标签或阶段配置触发过滤器来获得更多控制。也可以使用多种触发器类型(例如标签和阶段)。

请参阅触发一个又一个管道和[定义管道资源](定义管道资源)了解更多详细信息。

分支过滤器

您可以在配置触发器时指定要包含或排除的分支:

resources:
  pipelines:
  - pipeline: BuildPipelineCI
    source: BuildPipelineCI
    trigger: 
      branches:
        include: 
        - releases/*
        - main
        exclude:
        - releases/old*

标签过滤器

触发器的标签属性过滤哪些管道完成事件可以触发您的管道:

resources:
  pipelines:
  - pipeline: BuildPipelineCI
    source: BuildPipelineCI
    trigger:
      tags:        # This filter is used for triggering the pipeline run
      - Production # Tags are AND'ed
      - Signed

阶段过滤器

当触发管道的一个或多个阶段完成时,您可以触发管道:

resources:
  pipelines:
  - pipeline: BuildPipelineCI
    source: BuildPipelineCI
    trigger:    
      stages:         # This stage filter is used when evaluating conditions for 
      - PreProduction # triggering your pipeline. On successful completion of all the stages
      - Production    # provided, your pipeline will be triggered.

多种触发类型

考虑以下资源定义:

resources:
  pipelines:
  - pipeline: SmartHotel
    project: DevOpsProject
    source: SmartHotel-CI
    trigger:
      branches:
        include:
        - releases/*
        - main
        exclude:
        - topic/*
      tags: 
      - Verified
      - Signed
      stages:
      - Production
      - PreProduction

只要

SmartHotel-CI
管道在
releases
分支之一或
main
分支上运行,并且同时标记有
Verified
Signed
,并且完成了
Production
,您的管道就会运行PreProduction
阶段。

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