Answers:
在堆栈溢出方面最有效(并符合Joel测试的第2点)的是一个持续集成的解决方案,允许一键构建我们的生产站点,以及在新代码签入后自动构建我们的开发人员层。
我们使用.NET风格的CruiseControl,并使用令人兴奋的名称。.CruiseControl.NET :)
一些关键功能包括:
- 与各种源代码控制系统集成
- 与其他外部工具(如NAnt和Visual Studio)集成
- 可以在一台服务器上构建多个项目
- 远程管理和报告
我们一直对这个开源软件感到非常满意,并将其推荐给希望简化构建过程的任何团队。
我更喜欢自动且可重复的部署。您绝对希望从源代码控制标签开始,以便您确切了解部署的内容并可以随时重新部署它。然后使用脚本将其推送到服务器,就像Capistrano一样,或者只是自制的bash脚本或类似的东西。
对于使用已编译代码的站点,如果测试服务器与生产服务器匹配,则最好只编译一次代码,并在测试完该代码后将相同的编译版本推送到生产环境中。
我使用自定义脚本。对于静态(基于HTML)网站,我使用带有新版本和已安装版本的双重目录,然后脚本diff
在新版本和已安装版本上运行递归,并且仅上载已更改的文件。
我使用git和几个自定义的钩子进行部署。这甚至具有以下优势:我可以为dev / test / beta / production站点运行多个分支并执行一些CI。对于紧急补丁,git始终允许将特定的提交从一个分支挑选到下一个分支。