我在我的
.gitlab-ci.yml
文件中添加了以下规则,仅当 PR 合并到主管道时运行 CI/CD 管道,但它在未经批准后提出的每个 PR/MR 请求上运行。
- if: $CI_MERGE_REQUEST_APPROVED && $CI_MERGE_REQUEST_TARGET_BRANCH_NAME == "main"
when: always
如果我做错了什么,有人可以指出我吗?我已经保护了主分支。
提前致谢。
经过研究发现,GitLab CI/CD 本身并没有提供仅在主分支的合并请求 (MR) 获得批准时触发管道的直接方法。管道一般由代码推送、合并请求等事件触发,但没有内置功能可以根据 MR 批准直接触发。
只要有这个规则,当提交到主分支时就会触发管道。由于在 MR/PR 批准后 gitlab 创建了对 main 的合并提交,因此它将在批准合并提交到 main 后触发管道。它工作正常。这就是我想要的。
rules:
- if: $CI_COMMIT_BRANCH == "main"