在开始生产之前从持续集成管道中删除特定功能

时间:2015-10-17 04:28:44

标签: continuous-integration continuous-deployment

所以我有一个客户要求在他们的网站上实现某些功能。我们实现了所请求的功能,但在展示时,客户表示她不再需要某些功能。如果构建都是相互集成的,那么功能A的构建也包含功能B,如果客户端需要功能A但不再是功能B,我们如何解开这两个功能?

我知道我们可以回滚提交并重建,但我想知道是否有更简单的方法来使用CI管道。我们正在使用Go CI工具。

谢谢!

1 个答案:

答案 0 :(得分:0)

只有在完成的A功能之上添加了整个B功能时,回滚提交才是一项简单的任务。但这种情况很少发生,回滚操作通常不是微不足道的,因为与功能B提交之间交错的A功能提交和导致功能A回归的风险发生冲突。

所以真正的解耦努力(只是暂时禁用功能B,以防以后可能再次需要,或者完全删除功能B代码)只是另一组开发更改要集成在代码库的当前状态。您可以将其视为新功能C(产生A减B):)

如果正确实施,CI系统通常可以帮助更快,更有效地集成软件更改。在您的特定情况下 - 已经使用CI系统 - 您只需要删除与功能B相关的验证标准,同时保持与功能A相关的标准。然后继续集成去耦sw更改,就像任何常规sw更改一样。