代码推广:构建还是二进制文件?

5

假设有一个非常基本的源代码库结构,如下所示:

主干 ------- 
   QA  |--------
     Stage |-------
        Prod  |------

同时有一个对应的环境(开发、QA、预生产和生产服务器)——你们如何管理自动或手动的代码推广呢?是否使用CI服务器在各个阶段构建和推广?在开发阶段使用CI来构建二进制文件并在整个过程中使用?还是其他混合方法?

我想了一些想法。第一种是每个推广都会获取最新版本,进行构建,然后将构建输出推送到正确的服务器上。第二种是在某个时刻——QA或Staging——被推广的二进制文件将与复制到其他阶段的完全相同。第三种方法是保留一个用于部署二进制文件的辅助源代码库,该库将自动与代码推广同步移动。还有其他想法或建议吗?

2个回答

4

您绝对不希望生产代码与QA测试的代码不一致,因此应该使用二进制文件。

您还应标记用于创建每个构建的源代码,以便在需要时可以在开发环境中重现构建。至少如果您在这个阶段犯了一个错误,后果就不会那么严重。


完全同意,将任何未经测试的二进制文件推送到生产环境都是一个错误。 - HowardSP

1

我们在开发阶段使用CI,并使用每日构建进行推广。如果这些每日构建成功,它们将被标记在SVN中,以便我们不需要保留二进制文件的单独副本。任何引用的第三方库也都包含在内,以便标记是编译源代码的精确副本。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接