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:
- ...
- ...
我在舞台上使用规则方法。但是使用规则方法,我不想为标签触发 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:
- ...
- ...