![](/img/trans.png)
[英]Azure DevOps Git Granular Trigger Build for Continuous Integration & Delivery
[英]Continuous integration and continuous delivery with git-flow
我们一直在进行持续集成和持续交付,因为Subversion会在管道触发时提交。 最近,我们开始在git-flow的一些项目中使用git ,我们正在尝试决定使用git-flow的哪个分支来触发持续集成和连续交付管道。
这有两种方法:
1.使用开发分支
问题:使用git-flow我们应该在生产中部署发布(或主)分支,因此我们必须构建两个不同的管道,一个用于持续集成(分支开发),一个用于连续交付(分支主服务器)。 这可能会在生产中引入错误,因为生产中的版本与其他环境中的版本(集成,测试,登台)不同。
2.使用主分支 :
问题:这样,我们就不会有真正的持续集成,因为这些分支的更改不会频繁推送。
哪个是在管道中使用的rigth分支?
根据定义,Git-flow和连续集成是不兼容的。 分支是一种延迟集成的机制:当你提交除master(或trunk,如果你来自Subversion)之外的分支时,你就是在避免持续集成。 持续集成很简单,但并不容易。
事实就在于两者之间。 如果要在严格的CD管道中采用git-flow,则应该为CI使用release-branch:
基本思想来自John Ferguson Smart关于Java Maven项目中的CI / CD的幻灯片(BDD in Action,Jenkins Definite Guide)。
在我看来,如果你想在持续交付中应用git-flow,你应该有两个不同的管道,正如你在第一种方法中所说的那样。
我建议这种方法:
1.发展分支
2.主分公司
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.