【发布时间】:2022-01-09 05:05:01
【问题描述】:
【问题讨论】:
【问题讨论】:
您的解决方案的问题是,它仅在您有合并请求事件时避免管道执行,但仍然会有重复的管道,例如合并请求管道(detached 的)和分支管道(其他),我认为在推送标签时,您的设置也会创建一个单独的管道。
按照文档,您可以在使用以下工作流规则集(我添加了|| $CI_COMMIT_TAG)时避免重复的管道和在分支管道和 MR 管道之间切换,因为在推送标签时也应该创建管道(但是也许只有少数工作会被添加到这个管道中)
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
- if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
when: never
- if: '$CI_COMMIT_BRANCH' || '$CI_COMMIT_TAG'
这个管道是一个合并请求管道,你可以看到这是因为它是 detached 并且因为合并请求符号和提交 id 左侧的 MR 编号
以下屏幕截图显示了一个“普通”分支管道,由提交 ID 左侧的分支名称和 GitLab 分支符号表示
【讨论】:
待处理的合并请求会导致触发第二个管道作业。将以下内容添加到gitlab-ci.yml file 后解决
workflow:
rules:
- if: '$CI_PIPELINE_SOURCE == "merge_request_event"'
when: never
- when: always
【讨论】: