Gitlab-ci: 运行 CI job with rules, but use a definition to avoid CI 运行 for tags

Gitlab-ci: Run CI job with rules, but use a definition to avoid CI run for tags

我在舞台上使用规则方法。但是使用规则方法,我不想为标签触发 CI 运行 。 我需要找到一种方法来避免像 except: - tags 这样的标签。不幸的是,除了不遵守规则。短期内如何避免?

我在我的舞台上使用了这个片段,但它没有用,它仍然在创建标签后触发管道。

    - if: '$CI_COMMIT_TAG'
      when: never

这是我的主要部署阶段:

deploy:
  stage: deployment
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $sample == "one"'
      when: manual
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never
    - if: '$CI_COMMIT_TAG'
      when: never
    - if: '$CI_COMMIT_BRANCH && $sample == "one"'
      when: manual
  script:
    - ...
    - ...

我解决了这个问题。只是我在规则末尾添加了 - when: never。作为一个单独的规则,它将阻止所有不同的触发案例。

deploy:
  stage: deployment
  rules:
    - if: '$CI_PIPELINE_SOURCE == "merge_request_event" && $sync == "one"'
      when: manual
    - if: '$CI_COMMIT_BRANCH && $CI_OPEN_MERGE_REQUESTS'
      when: never
    - if: '$CI_COMMIT_TAG'
      when: never
    - if: '$CI_COMMIT_BRANCH && $sync == "false"'
      when: manual
    - when: never
  script:
    - ...
    - ...