-2

我有以下内容.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 个管道而不是一个(引入了一个分离的管道)。

有人可以帮助我错过什么吗?

4

1 回答 1

0

经过更多调查,事实证明.gitlab-ci.yml我在问题中发布的内容没有任何问题。

一切都很完美。

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

我能够重现这一点,并将其报告为问题https://gitlab.com/gitlab-org/gitlab/-/issues/341713。这是复制的合并https://gitlab.com/adham.sabry/pipeline-test/-/merge_requests/5,其中受保护的分支没有启动管道。

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

于 2021-09-27T08:11:06.457 回答