mai*_*air 4 gitlab gitlab-ci gitlab-ci-trigger
在 Gitlab 中,我试图从父管道触发子管道。子管道位于同一项目的子目录下。但是,在合并请求事件时触发时,它会给出错误“无法创建下游管道,该管道没有阶段/作业”
文件夹结构:
父管道:
trigger_servicename:
stage: triggers
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"'
changes:
- app-notifier/*
when: always
trigger:
include: servicename/.gitlab-ci.yml
strategy: depend
Run Code Online (Sandbox Code Playgroud)
子管道:
image:
name: registry.gitlab.com/who-docker/aws-cli:latest
entrypoint:
- /usr/bin/env
- 'PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin'
stages:
-build
build:
stage: build
script:
- echo "run build..."
test:
stage: test
script:
- echo "run test...."
Run Code Online (Sandbox Code Playgroud)
Mic*_*Osl 28
通常,当没有与子管道中的任何作业匹配的规则时,您会收到错误消息“无法创建下游管道,此管道没有阶段/作业”。来自上游管道的规则将在子管道中继承。
查看您的示例,该规则if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "dev"'继承到子管道。此规则在子管道中不匹配,因为$CI_PIPELINE_SOURCE在子管道中是trigger,而不是来自上游管道的规则。因此,没有可供 gitlab 执行的作业。
如果你添加
workflow:
rules:
- when: always
Run Code Online (Sandbox Code Playgroud)
对于你的孩子管道它会起作用。如果需要,相应地修改规则。
| 归档时间: |
|
| 查看次数: |
16208 次 |
| 最近记录: |