【发布时间】:2021-12-26 13:55:37
【问题描述】:
workflow:
rules:
- if : '$CI_COMMIT_BRANCH == "Sprint-Release-Branch"'
when: never
- if : '$CI_PIPELINE_SOURCE == "merge_request_event" && $CI_PIPELINE_SOURCE == "push"'
when: never
- when: always
stages:
- Stage1
- Stage2
- Stage3
Task1:
stage: Stage1
script:
- echo "Stage1"
rules:
- if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.DEV\d+/'
tags:
- Runner
Task2:
stage: Stage1
script:
- echo "Checking code standard as per "Coding Standards""
rules:
- if: '$CI_COMMIT_TAG =~ /^\d+\.\d+\.DEV\d+/'
allow_failure: true
tags:
- Runner
Task3:
stage: Stage2
script:
- echo "Stage2"
when: manual
tags:
- Runner
Task4:
stage: Stage3
script:
- echo "Stage3"
when: manual
tags:
- Runner
上面是我正在尝试的 Gitlab CI 文件
- 当“Sprint-Release-Branch”上发生合并和推送请求时,管道不应添加作业
但每当任何合并请求完成“功能分支”到“Sprint-Release-Branch”作业时,定义为“何时:手动”的作业都会添加到管道中。
所以在我的情况下,开发团队正在为不同的用户故事创建不同的功能分支,然后将这些功能分支合并到具有上述 yml 文件的 Sprint-Release-Branch 中。因此,对于每个使用“手动”触发器定义的 merge_request,管道中都会不断添加多个作业
如何优化我的 yml,使具有手动触发的作业不应该添加到管道中。
【问题讨论】:
标签: gitlab gitlab-ci gitlab-ce