我正在尝试运行一个管道,其中最后阶段取决于前一个阶段,其中的作业是有条件的和手动的。
我制作了这个示例 .gitlab-ci.yml 来演示这一点。我正在分三个阶段进行工作:
stages:
- test
- publish
- create tag
Run Code Online (Sandbox Code Playgroud)
测试阶段有一项工作
# Tests Stage
run tests:
stage: test
script:
- run the tests
Run Code Online (Sandbox Code Playgroud)
发布阶段的三个作业,都是手动的,仅在某些文件发生更改时存在
.publish:
stage: publish
script:
- publish x
rules:
- changes:
- $DIR/**/*
when: manual
# Publish Stage
publish package a:
variables:
DIR: a
extends:
- .publish
publish package b:
variables:
DIR: b
extends:
- .publish
publish package c:
variables:
DIR: c
extends:
- .publish
Run Code Online (Sandbox Code Playgroud)
最后是“创建标签”阶段,我只想在其中一项发布作业完成时运行该阶段。
# Create Tag Stage
create tag …Run Code Online (Sandbox Code Playgroud)