Gitlab 主分支流水线合并后不是 运行

Gitlab master branch pipeline is not running after merge

我有以下 .gitlab-ci.yml:

stages:
  - build

workflow:
  rules:
    - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH
      variables:
        ENVIRONMENT_TYPE: 'prod'
    - if: $CI_COMMIT_REF_PROTECTED == 'true' && $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH
      variables:
        ENVIRONMENT_TYPE: 'preprod'
    - if: $CI_COMMIT_REF_PROTECTED == 'false'
      variables:
        ENVIRONMENT_TYPE: 'review'
    - if: $CI_MERGE_REQUEST_ID
      when: never
Compile:
  stage: build
  image: node
  only:
    - branches
  script:
    - yarn install
    - yarn build

如果我的分支是 feature/xyz,并且我推送,它 运行 就是所需的管道。但如果我合并,管道将不会在 master 分支上 运行。

我补充道:

    - if: $CI_MERGE_REQUEST_ID
      when: never

因为如果我推送到我的正常分支,它将 运行 2 个管道而不是一个(引入了一个独立的管道)。

有人可以帮助我缺少什么吗?

经过多方调查,原来我在问题中发的.gitlab-ci.yml没有问题

一切都很完美。

事实证明,我在其中一个工作流中有 AUTO_STOP: 0 环境变量,它阻止了管道 运行。 (未记录的变量 https://docs.gitlab.com/search/?query=AUTO_STOP

我能够重现此问题,并将此报告为一个问题 https://gitlab.com/gitlab-org/gitlab/-/issues/341713. Here is the reproduced merge https://gitlab.com/adham.sabry/pipeline-test/-/merge_requests/5,其中受保护的分支没有启动管道。

我希望这对您有所帮助,没有人会偶然发现这一点。