我希望Gitlab流水线只在合并请求时启动,不要在任何分支的提交上启动。
但是当我创建合并请求时,会启动两个管道请求。一个是独立的合并请求管道:这个是在合并请求被创建时启动的(还未批准)。我想要阻止此管道运行。但是这个运行已经填充了所有MR变量。 FYI,我有一些规则来设置变量值和读取这些值导致了这个问题。我尝试了以下方法,如此处所述:https://gitlab.com/gitlab-org/gitlab/-/issues/201845 来阻止独立管道的运行,它有效了。但现在我没有办法访问MR变量。
only:
refs:
- merge_requests
changes:
- "**/*.json" except:
- $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME == "master"
- $CI_COMMIT_REF_NAME == "master"
但是当我创建合并请求时,会启动两个管道请求。一个是独立的合并请求管道:这个是在合并请求被创建时启动的(还未批准)。我想要阻止此管道运行。但是这个运行已经填充了所有MR变量。 FYI,我有一些规则来设置变量值和读取这些值导致了这个问题。我尝试了以下方法,如此处所述:https://gitlab.com/gitlab-org/gitlab/-/issues/201845 来阻止独立管道的运行,它有效了。但现在我没有办法访问MR变量。
workflow:
rules:
- if: $CI_MERGE_REQUEST_IID
- if: $CI_OPEN_MERGE_REQUESTS
when: never
- 合并分支pipeline: 在合并完成/批准后启动。我只希望启动这个pipeline。但在这个分支上,所有的合并请求变量 - CI_MERGE_REQUEST_SOURCE_BRANCH_NAME和CI_MERGE_REQUEST_TARGET_BRANCH_NAME都是空的。
如何实现以下内容:
阻止Detached分支请求的pipeline运行,并获取合并分支pipeline运行的MR变量?
更新1:我在设置中启用了合并结果pipeline,并删除了MERGE_REQUEST_IID规则。现在,合并结果pipeline正在运行,而不是Detached,但合并结果pipeline在批准之前执行?对不起,这很令人困惑。是否有任何方法可以在合并获得批准后仅启动pipeline,并在该pipeline运行中访问MR变量?
$CI_MERGE_REQUEST_APPROVED
为 true 时运行。但是,您无法获取由于_合并_流水线而创建的任何流水线的这些变量;它始终只是一个普通的分支流水线,并且无法访问 MR 变量(如答案中所述)。 - sytech