有什么方法可以将成功构建的功能分支推送到另一个分支?
我想要这样的东西:
Git存储库(Gitorious / GitHub等)。分行:
开发人员应仅具有对母版的读取访问权限,并且对其功能分支进行读/写QA读/写质量保证分支TeamCity-读/写母版,质量保证,仅对功能分支只读
现在,我想要一个这样的工作流程:
我不知道是否需要进行质量检查的步骤,也许成功构建和测试后的每个功能分支都应与母版合并。
首先,我想知道:这有意义吗?我只是从CI开始,我不知道它是否可以工作。
其次,如果此工作流程正确,我想知道如何配置TeamCity来执行类似的操作,以及如果发生某种冲突或在哪里出现问题该怎么办。
最近,我观看了有关Git + Jenkins + Gerrit的演示,在其中我看到了类似的内容,但是对于.NET开发,我个人更喜欢TeamCity,但是如果使用Jenkins这样做更容易,我会改变主意。
我们已经使用github实现了具有与此目标相同的工作流(尽管实现略有不同),并且尽管有可能它可能需要进行一些设置才能确保Teamcity的某些问题。我对这里的类似问题还有另一个答案
我们的解决方案基本上涉及到每个开发人员都有自己的主存储库分支,他们具有读写权限a和从主(绿色)存储库中提取权限。开发人员在分支机构上工作(每个故事一个,短命),这些团队由团队城市推向自己的个人分支时建立。
一旦开发人员准备好将其更改合并到主服务器中,他们便会提交拉取请求并审核代码,然后最终与主分支合并。然后,他们将自己的主人分支推到自己的个人叉子上。
如果此构建成功并且所有测试都通过了(此时我们也部署到Azure,然后对该部署运行测试),则Team City构建代理会将master分支推送到绿色存储库。
此推送必须是快速前进或被拒绝(这可以通过自动合并解决任何潜在的问题,这让我感到恐惧)
您可以轻松地扩展它,使dev分支将其推送到QA存储库,然后QA对构建服务器进行提交,从而触发推送到绿色(或让QA拥有推送到绿色的权利)。
teamcity设置可能会有些麻烦,因为您需要将事物与快照相关性进行链接,这会抑制使用模板的能力,这意味着每个开发人员至少需要2个构建配置(我们需要4个配置来处理部署azure并针对azure运行测试),因此如果您有很多开发人员,这可能会很难管理。理想情况下,您不需要这样做,但是由于团队合作中的问题仍未解决,如果测试失败,您将无法始终使构建快速失败。