我有一个像这样的 gitlab ci 管道(取自他们的docs)
stages:
- triggers
trigger_reports:
stage: triggers
trigger:
include: reports/.gitlab-ci.yml
rules:
- changes:
- reports/*
trigger_storage:
stage: triggers
trigger:
include: storage/.gitlab-ci.yml
rules:
- changes:
- storage/*
这效果很好,但如果未触发子管道,则将整个管道标记为失败。 。消息是
无法创建下游管道,没有为此的阶段/作业 管道
如何仅在更改时运行子管道,但如果未触发则将运行标记为成功?
我尝试添加
rules:
- changes:
- reports/*
- exists:
- reports/*
但这也会触发子管道。
文档中并不清楚,并且有一个解决该问题的开放问题 gitlab.com/gitlab-org/gitlab/-/issues/385208 但您需要做的是在子管道中的步骤上应用相同的规则。如果您过滤掉各个规则,子级将根本不会出现在管道中。