我们有一个CI流程,我们将开发分支中的更改推送到开发服务器和QA服务器进行测试。一旦我们对更改工作感到满意,并且QA通过了他们的测试,我们希望从该品牌中挑选更改并将其合并到主分支中,以推送到我们的试运行和发布环境中。现在,在TFS的构建/发布过程中,对开发和QA的发布是自动化的。是否有一个任务和/或变量我们可以添加,当我们推送到登台时,我们可以精选更改并合并到主分支中,并将主分支移动到登台环境中?现在,这将是一个容易发生人为错误的手动过程,并打破了我们的CI过程,使其依赖于人工干预。我们使用的是当前的TFS系统。
谢谢。
发布于 2017-08-17 06:15:10
这种合并过程非常容易出错。看起来也来自你的过程,它是一个不同的代码库或包,当它从开发提升到qa或登台时进行了测试。
我建议你看看基于主干的构建。如果您正在处理新功能,并且不属于下一个计划的版本,则应该在功能分支中完成。或者,一旦主干经过测试并通过集成、用户接受、性能或安全测试,您就可以从主干分支并创建发布候选分支。来自release candidate分支的任何更改都需要合并到主干。在这一点上,不要期望有太多的变化。这个想法是尽可能晚地扩展。
基于主干的构建并不新鲜。它已经被接受敏捷和devops实践的大/小公司所采用。
注意:正在开发特定功能的开发人员应该创建自己的功能分支。一旦它稳定下来,它们就可以合并到主干上。然后可以删除特征分支。
发布于 2017-08-17 06:16:27
简而言之,没有办法自动完成你所要求的事情。如果你想这样做,你必须编写你自己的代码。出于以下原因,我强烈建议不要这么做:
你所做的是持续集成的反面。从代码库中挑选正确集成的工作特性,并将它们合并到另一个分支中,更好地将其称为连续隔离。
通过采用在集成状态下针对开发人员和QA环境进行测试的更改,并转移到新的分支并进行重建,您实际上是在完全无效之前完成的所有测试。
一种更好的方法是使用功能切换(也称为功能标志)来禁用仍在开发中的功能,并在集成状态下发布应用程序,禁用不完整的功能。
https://stackoverflow.com/questions/45722859
复制相似问题