我有一个经典的构建管道和一个 YAML 发布管道,其 YAML 触发器如下所示:
resources:
pipelines:
- pipeline: BuildPipelineCI
source: BuildPipelineCI
trigger: true
trigger: none
这意味着,只要构建管道上发生新的绿色构建,YAML 发布管道就会自动触发。
有时,我注意到这个 YAML 管道会被非常旧的构建自动触发,这些构建已经在很多天前完成,只是因为它们最近被标记了一些标签。
向已完成的构建运行添加标签是否被视为触发我的 YAML 管道的构建完成事件?我怎样才能避免这种情况?
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
阶段。