Continuous integration 在投入生产之前从持续集成管道中删除特定功能

Continuous integration 在投入生产之前从持续集成管道中删除特定功能,continuous-integration,continuous-deployment,Continuous Integration,Continuous Deployment,所以我有一个客户要求在他们的网站上实现某些功能。我们实现了所要求的功能,但当展示时,客户表示她不再需要某些功能。如果构建都是相互集成的,功能A的构建也包含功能B,那么如果客户机需要功能A而不再需要功能B,我们如何将这两个功能解耦 我知道我们可以回滚提交和重建,但我想知道是否有更简单的方法使用CI管道来实现这一点。我们正在使用Go CI工具 谢谢大家! 只有在整个B功能添加到已完成的a功能之上时,回滚提交才是一项简单的任务。但这种情况很少发生,回滚操作通常不是无关紧要的,因为和特性B提交之间交织的

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

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


谢谢大家!

只有在整个B功能添加到已完成的a功能之上时,回滚提交才是一项简单的任务。但这种情况很少发生,回滚操作通常不是无关紧要的,因为和特性B提交之间交织的特性A提交冲突以及导致特性A回归的风险

因此,真正的解耦工作(只是暂时禁用特性B,以防以后再次需要它,或者完全删除特性B代码)只是在代码库的当前状态之上集成的另一组开发更改。你可以认为它是一个新的特征C(产生减去B):)


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

我们最终使用了功能切换,这非常有效。