我添加了 gitlab CI/CD 作业,该作业应在 MR 合并到 master 后运行。
Test:
stage: test
script:
- echo "hello world"
rules:
- if: $CI_MERGE_REQUEST_SOURCE_BRANCH_NAME =~ /main|master/
when: never
- if: '$CI_COMMIT_REF_NAME == "main" && $CI_PIPELINE_SOURCE != "merge_request_event"'
when: manual
当 mr 合并到 main 时,此作业就会运行。但是当 MR 从
main
分支到另一个分支时,作业也会运行。
我怎样才能避免这种情况。作业只能在 mr 合并到 master 时运行。
Test:
stage: test
script:
- echo "hello world"
rules:
- if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
when: manual
通过上述更改,应该足以识别您正在合并对
main
的更改,因为合并是到默认分支的推送事件。使用 $CI_COMMIT_BRANCH
排除了 MR 管道,因为它仅在提交时可用。