仅当它被触发或在master上手动运行时才需要运行gitlab管道作业。如果在master分支以外的其他位置运行手动,则应忽略作业。如果被触发-然后从分支部署应用程序,然后将分支合并到主分支。在我的案例中,合并到master会导致更多部署。需要避免重复的部署步骤。
在任何分支上触发构建-运行作业 在主分支上手动开始构建-运行作业 在主分支以外的其他地方手动开始构建-跳过作业
在这种情况下,作业运行两次:被触发以及与主服务器合并时。
deploy-production:
stage: deploy
script: echo 1
when: on_success
only:
- triggers
- master
将已部署的分支推送到主节点时,需要忽略此步骤。
答案 0 :(得分:0)
一种实现此目的的方法是使用标签。 gitlab ci中的'only'和'except'关键字接受分支和标签。
由于标签不能重复,因此您每次都需要使用一个新标签(实时version.deployed.i,其中每次i都会递增),并对
之类的except语句使用正则表达式except: /^version.deployed./
或者使用每次部署时删除并重复使用的“已部署”标签。
当然,部署后,部署工作需要处理标记。