假设有一个非常基本的源代码库结构,如下所示:
主干 ------- QA |-------- Stage |------- Prod |------
同时有一个对应的环境(开发、QA、预生产和生产服务器)——你们如何管理自动或手动的代码推广呢?是否使用CI服务器在各个阶段构建和推广?在开发阶段使用CI来构建二进制文件并在整个过程中使用?还是其他混合方法?
我想了一些想法。第一种是每个推广都会获取最新版本,进行构建,然后将构建输出推送到正确的服务器上。第二种是在某个时刻——QA或Staging——被推广的二进制文件将与复制到其他阶段的完全相同。第三种方法是保留一个用于部署二进制文件的辅助源代码库,该库将自动与代码推广同步移动。还有其他想法或建议吗?