代码升级:构建还是二进制?

Cor*_*Foy 5 svn version-control tfs

给出一个非常基本的源树结构,如下所示:

树干  -  -  - -
   质量保证|--------
     舞台|-----
        产品|------

以及一个反映该环境的环境(开发、质量保证、登台和生产服务器)——你们如何管理自动或手动代码升级?你们在各个阶段都使用 CI 服务器来构建和推广吗?Dev 中的 CI 构建自始至终使用的二进制文件?其他一些混合体?

我一直在思考一些想法。第一个是每次升级都会执行获取最新版本、构建,然后将构建的输出推送到正确的服务器。第二个是,在某些时候(QA 或暂存),升级的二进制文件将与复制到其他阶段的二进制文件完全相同。第三个是为已部署的二进制文件保留一个辅助源代码树,该代码树将自动与代码升级同步移动。还有其他想法或想法吗?

Mar*_*som 4

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

您还应该标记用于创建每个构建的源,因此如果需要,您可以在开发环境中重现构建。至少,如果你在这个时候犯了错误,后果不会那么严重。