如何在合并请求和合并后运行GitLab CI?
两个分支,dev和master . 两个工作,测试和部署 .
在从任何分支到dev分支的合并请求中,CI将触发 . 但我现在只想让测试工作运行 . 合并请求合并后,它将继续执行部署作业 . 这样的原因是,虽然所有测试都将通过,但我们仍然无法继续进行部署,因为可能会有一些来自代码审查中验证器的注释,开发人员需要解决这些问题 . 只有在解决了这些注释之后,如果单元测试成功,那么它将被允许合并 . 合并合并请求后,才允许部署 . dev分支将部署到dev / test,master将部署到staging . Prod将手动部署 .
1 回答
使用
only
和except
语法定义不同的作业 . 如果要合并到master
分支,则可以使用以下语法创建名为before-merge
的作业:然后,您的部署作业仅在提交到主分支时运行:
这样,应该对所有分支 except master上的提交执行
before-merge
作业,并且只有在合并到主分支后才会执行deploy
作业 .参考:https://docs.gitlab.com/ce/ci/yaml/README.html#only-and-except-simplified