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

Removing a specific feature from the continuous integration pipeline before going to production

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

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

谢谢!

仅当将整个 ​​B 功能添加到已完成的 A 功能之上时,回滚提交才是一项简单的任务。但这种情况很少见,回滚操作通常不是微不足道的,因为与功能 B 提交之间交错的 A 功能提交存在冲突,并且有导致功能 A 回归的风险。

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

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