代码之家  ›  专栏  ›  技术社区  ›  Cory Foy

代码升级:build还是binary?

  •  4
  • Cory Foy  · 技术社区  · 16 年前

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

    trunk ------- 
       QA  |--------
         Stage |-------
            Prod  |------
    

    以及一个反映这一点的环境(dev、qa、staging和production服务器)——您如何管理自动化或手动代码升级?您是否使用CI服务器在所有阶段构建和升级?在dev中使用CI来构建整个过程中使用的二进制文件?其他的混血儿?

    我有好几个想法。首先,每次升级都会执行一个get-latest、build,然后将build的输出推送到正确的服务器上。第二个问题是,在某个时刻(qa或staging),被提升的二进制文件与复制到其他阶段的二进制文件完全相同。第三种方法是为已部署的二进制文件保留第二个源代码树,这将随着代码升级而自动同步移动。还有其他想法吗?

    2 回复  |  直到 16 年前
        1
  •  4
  •   Mark Ransom    16 年前

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

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

        2
  •  1
  •   EggyBach    16 年前

    我们在开发阶段使用CI,并使用被提升的日常构建。如果成功的话,这些每日构建都会在SVN中标记,这样我们就不需要单独保存二进制文件的副本。还包括引用的任何第三方库,以便标记是编译内容的确切源副本。