如何使GitLab CI在合并请求中以及合并之后运行?
两个分支,dev和master。 测试和部署两项工作。
在任何分支到dev分支的合并请求中,CI都会触发。但是我只希望测试作业暂时运行。合并请求合并后,它将继续执行部署作业。这样的原因是,尽管所有测试都会通过,但是我们仍然无法继续进行部署,因为在代码审查中,验证者可能会提出一些开发人员需要解决的评论。只有在解决了这些注释之后,然后,如果单元测试成功,才可以将其合并。合并请求合并后,才允许部署。 dev分支将部署到dev / test,而master将部署到暂存。产品将手动部署。
答案 0 :(得分:4)
使用only
和except
语法定义不同的作业。如果要合并到master
分支,则可以使用以下语法创建名为before-merge
的作业:
before-merge:
except:
- master
然后,您的部署作业仅针对提交到master分支的运行:
deploy:
only:
- master
这样,应该对所有分支上的提交执行before-merge
作业,而除主节点之外的所有分支都必须执行deploy
作业,发生了。
参考:https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except-simplified