我们的开发/发布周期如下:
1. 开发人员创建一个功能分支,实现一个功能 2. 开发人员表示该功能已准备好进行验收测试(UAT) 3. 测试人员部署功能分支并接受(或拒绝)该功能
通过测试的功能将由测试人员合并到主分支中,并在下一个发布周期中发布(我们每周部署一次主干/主分支代码)。
我们在合并冲突方面遇到了困难,因为当测试人员进行 UAT 并发现它不能干净地合并时,通常情况下已经使用该功能的开发人员已经转向其他事物。
我们正在考虑一种解决方案,即每个功能分支都会自动由 TeamCity 合并到当前主分支上,任何导致合并冲突的构建都被视为失败的构建 - 这将使我们更早地发现问题合并,以便我们尽早修复它们。
TeamCity 似乎没有内置支持此工作流程(即当推送到分支 X 时,检出主分支,在其上合并分支 X,构建、单元测试、创建软件包)。是否有人使用 TeamCity 和 Github 创建了类似的工作流程 - 也许是使用自定义 msbuild 目标?
编辑:我应该澄清一下,我们正在使用 Github,但目前不使用 pull requests - 听起来这是我应该调查的事情。 :)
1. 开发人员创建一个功能分支,实现一个功能 2. 开发人员表示该功能已准备好进行验收测试(UAT) 3. 测试人员部署功能分支并接受(或拒绝)该功能
通过测试的功能将由测试人员合并到主分支中,并在下一个发布周期中发布(我们每周部署一次主干/主分支代码)。
我们在合并冲突方面遇到了困难,因为当测试人员进行 UAT 并发现它不能干净地合并时,通常情况下已经使用该功能的开发人员已经转向其他事物。
我们正在考虑一种解决方案,即每个功能分支都会自动由 TeamCity 合并到当前主分支上,任何导致合并冲突的构建都被视为失败的构建 - 这将使我们更早地发现问题合并,以便我们尽早修复它们。
TeamCity 似乎没有内置支持此工作流程(即当推送到分支 X 时,检出主分支,在其上合并分支 X,构建、单元测试、创建软件包)。是否有人使用 TeamCity 和 Github 创建了类似的工作流程 - 也许是使用自定义 msbuild 目标?
编辑:我应该澄清一下,我们正在使用 Github,但目前不使用 pull requests - 听起来这是我应该调查的事情。 :)