自动编译和部署的可靠性

时间:2013-05-22 15:12:08

标签: continuous-integration web-deployment

假设我在本地构建代码然后部署二进制文件。在这个例子中,我知道服务器上的二进制文件是从正确的源代码编译的。

因此,我想说我在本地构建我的代码并且它可以工作,所以我将代码推送到源代码控制。 CI服务器检测到更改,检出源并成功重新编译并实时推送二进制文件。

因此两个过程的开始和结束是相同的。但第二个有更多的错误空间。例如,我对源代码管理的提交可能有错误。我可能无法提交所有已更改的文件,但源代码仍可以编译。

如何确保源代码管理中的源代码与本地源代码相同?

1 个答案:

答案 0 :(得分:0)

第一件事是:如果您使用CI服务器,则不应手动将任何内容部署到测试,预览或生产服务器。

通常,我在CI服务器上有一个构建配置,有很多步骤,例如:

  1. 汇编
  2. Static code analysis (like FxCop, PMD, etc).
  3. Unit tests (nunit, junit, etc).
  4. 部署到测试服务器。许多Web技术人员都可以通过简单的方法完成此步骤,例如Web部署ASP .NET站点。此站点版本将用作接下来两个步骤的目标。
  5. Functional tests (selenium, sikuli, etc).
  6. 性能测试。对于网站和网站apis,我们使用JMeter
  7. 打包最终的工件。也许需要生成一个安装程序,可能只是带有部署文件的.zip文件。
  8. 通过所有步骤(您应该在步骤3中获得良好的代码覆盖率并在步骤4中进行良好的用户案例测试),您可以更自信地将步骤7中生成的最终文件部署到生产服务器。