给出一个非常基本的源树结构,如下所示:
trunk ------- QA |-------- Stage |------- Prod |------
一个反映(Dev,QA,Staging和Production服务器)的环境 - 您如何管理自动或手动代码促销?您是否使用CI服务器在所有阶段进行构建和推广?在Dev的CI中构建了全程使用的二进制文件?其他一些杂交?
我一直在思索着几个想法。第一个是每个促销都会获得最新,构建,然后将构建的输出推送到正确的服务器。第二个是在某些时候 - 质量保证或临时 - 被提升的二进制文件与复制到其他阶段的二进制文件完全相同。第三个是为已部署的二进制文件保留一个辅助源代码树,它将自动与代码提升同步移动。还有其他想法或想法吗?
答案 0 :(得分:4)
您绝对不希望生产代码与测试的QA不相同,因此您应该使用二进制文件。
您还应该标记用于创建每个构建的源,因此如果需要,您可以在开发环境中重现构建。至少如果你在这一点上犯了错误,后果将不会那么激烈。
答案 1 :(得分:1)
我们在开发阶段使用CI,并使用升级的每日构建。如果成功,这些每日构建都会在SVN中标记,这样我们就不需要保留二进制文件的单独副本。引用的任何第三方库也包括在内,以便标记是编译内容的精确源副本。