仅当从分支主服务器上的Web触发或启动时才需要运行部署步骤

时间:2019-10-16 12:24:05

标签: gitlab gitlab-ci gitlab-ci-runner

仅当它被触发或在master上手动运行时才需要运行gitlab管道作业。如果在master分支以外的其他位置运行手动,则应忽略作业。如果被触发-然后从分支部署应用程序,然后将分支合并到主分支。在我的案例中,合并到master会导致更多部署。需要避免重复的部署步骤。

在任何分支上触发构建-运行作业 在主分支上手动开始构建-运行作业 在主分支以外的其他地方手动开始构建-跳过作业

在这种情况下,作业运行两次:被触发以及与主服务器合并时。

deploy-production:
  stage: deploy
  script: echo 1
  when: on_success
  only:
    - triggers
    - master

将已部署的分支推送到主节点时,需要忽略此步骤。

1 个答案:

答案 0 :(得分:0)

一种实现此目的的方法是使用标签。 gitlab ci中的'only'和'except'关键字接受分支和标签。

由于标签不能重复,因此您每次都需要使用一个新标签(实时version.deployed.i,其中每次i都会递增),并对

之类的except语句使用正则表达式
except: /^version.deployed./

或者使用每次部署时删除并重复使用的“已部署”标签。

当然,部署后,部署工作需要处理标记。