&quot。gitlab-ci.yml不运行合并请求创建管道的规则

发布于 2025-02-02 01:46:41 字数 974 浏览 1 评论 0原文

重要的话要进一步进一步:

问题 GitLab创建新的合并请求时,请勿运行CI/CD管道 a Beplate: 我询问“ .gitlab-ci.yml”规则,但是这个问题对此没有任何答案。

当前的gitlab(默认)行为

在发行页上我单击“创建合并请求” - >自动启动新管道。

所需的行为

不会在合并请求创建

我当前的“ .gitlab-ci.yml”上运行管道。

.default_rules:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: manual
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - "**/*.{py,c,cpp}"
        - .gitlab-ci.yml
        - poetry.lock
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH
      changes:
        - "**/*.{py,c,cpp}"
        - .gitlab-ci.yml
        - poetry.lock
    - if: $PIPELINE_TYPE == "multi-project-pipeline"

Important note before going further:

The question GitLab do not run CI/CD pipeline when creating new merge request is not a duplicate:
I am asking about ".gitlab-ci.yml" rules, but that question has no answers about this.

Current GitLab (default) behavior

On an issue page I click "Create Merge Request" --> A new pipeline is started automatically.

Required behavior

Do not run a pipeline on merge request creation

My current ".gitlab-ci.yml"

.default_rules:
  rules:
    - if: '$CI_PIPELINE_SOURCE == "web"'
      when: manual
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      changes:
        - "**/*.{py,c,cpp}"
        - .gitlab-ci.yml
        - poetry.lock
    - if: $CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS
      when: never
    - if: $CI_COMMIT_BRANCH
      changes:
        - "**/*.{py,c,cpp}"
        - .gitlab-ci.yml
        - poetry.lock
    - if: $PIPELINE_TYPE == "multi-project-pipeline"

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

樱娆 2025-02-09 01:46:41

解决方案
不要在合并请求创建上工作:

# .gitlab-ci.yml

your_job_name:
  rules:
    - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"
      when: never

有点有用的奖金
避免重复管道的完整规则(以防万一有人需要):

  rules:
    # Prevent creating duplicate pipelines because pipelines are already created for PUSH events.
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: never
    # Do not run after Merge Request closing.
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: never
    # Do not run on Merge Request creation.
    - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"
      when: never
    # When to run:
    - if: $CI_PIPELINE_SOURCE == "push"
      changes:
        # If the code has changed
        - "**/*.py"

SOLUTION
Do not run a job on Merge Request creation:

# .gitlab-ci.yml

your_job_name:
  rules:
    - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"
      when: never

A LITTLE USEFUL BONUS
Full rules to avoid duplicate pipelines (just in case if someone needs this):

  rules:
    # Prevent creating duplicate pipelines because pipelines are already created for PUSH events.
    - if: $CI_PIPELINE_SOURCE == "merge_request_event"
      when: never
    # Do not run after Merge Request closing.
    - if: $CI_COMMIT_BRANCH == $CI_DEFAULT_BRANCH
      when: never
    # Do not run on Merge Request creation.
    - if: $CI_COMMIT_BEFORE_SHA == "0000000000000000000000000000000000000000"
      when: never
    # When to run:
    - if: $CI_PIPELINE_SOURCE == "push"
      changes:
        # If the code has changed
        - "**/*.py"
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文