【发布时间】:2021-06-04 12:41:51
【问题描述】:
我想要:
- PipelineA 在成功完成后构建并上传工件
- PipelineB 运行并下载 PipelineA 的工件
PipelineA 的触发器:
trigger:
branches:
include:
- release/*
- master
这按预期工作,每当进行代码更改时,PipelineA 都会运行并构建一个工件。
PipelineB 的触发器(不起作用!)
trigger: none # important! we do not want to be deploying to environments without an artifact
resources:
pipelines:
- pipeline: PipelineALocal # does not matter, only for pulling down local vars
source: PipelineA # the exact name defined in ADO
trigger: true # tried every variant under the sun to get this working but this pipeline will never run
我已经尝试了所有触发器组合,包括(显然应该始终有效trigger: true?)但没有任何效果。管道永远不会触发。
在resources.pipelines.branches.include 下,我尝试过:refs/heads/master、master、refs/heads/release/*、release/* 以及介于两者之间的所有内容。当然要使用正确的 YAML 格式。
The documentation 非常令人困惑,但我设法弄清楚如何从管道别名中获取 runID。
--
我已经尝试通过触发器 UI 并根据 PipelineA 成功配置 PipelineB 构建完成触发器。
这仅适用于 master 分支,因此我无法使用 variables['Build.SourceBranch'] 来确定这是暂存版本还是发布版本。
如何根据 CI 管道成功触发 CD 管道?
【问题讨论】:
-
PipelineA 的构建是完全成功还是部分成功?
-
您是否曾经在 UI 中为管道设置过触发器? (编辑 -> 省略号 -> 触发器)
-
是 PipelineA 的构建成功。 -- 我确实使用了省略号 UI,它适用于
master。但我也需要能够控制release管道。variables['Build.SourceBranch']在 CD 管道中总是变成master,这是不好的。当管道首先应该可以通过 Yaml 完全配置时,我为什么要这样做? ?????? -
嗨@user5812916,进展如何?我注意到
@BartoszPelikan的回答中有一些很好的建议。请与他们核对一下。
标签: azure-devops continuous-integration yaml continuous-delivery