Gitlab CI / CD只需部署一次阶段

时间:2020-08-24 18:26:17

标签: continuous-integration gitlab gitlab-ci

有没有办法只在管道第一次执行时才执行一次阶段

例如,如果我有这个阶段

  • 构建
  • tag_version
  • 测试
  • 部署

我想执行 N 条管道,但下次不执行'tag_version',只需在第一次执行即可

2 个答案:

答案 0 :(得分:1)

您可以使用rules: changes,也可以结合使用when: manual,以便仅在更改特定文件(例如Dockerfile)时才执行标记。

请参见https://docs.gitlab.com/ee/ci/yaml/#ruleschanges

答案 1 :(得分:1)

我使用以下规则解决了问题:捕获推送事件并与我要标记的标记匹配。这样,我的阶段就执行一次

.mycondition: &mycondition
  rules:
    - if: '$CI_COMMIT_TAG =~ /^release-v\d+$/ && $CI_PIPELINE_SOURCE == "push"'
      when: always