我们使用 ExpressionEngine CMS (php) 创建网站。对于每个站点,我们设置一个 subversion 存储库并提交 EE 安装以及使用的任何自定义模板、图像、javascript 等。存储库中包含包含所有环境变量的文件和 .htaccess 文件。
我们有一个开发服务器,其中包含通过我们用于开发的提交后更新的存储库的工作副本。当我们准备好发布时,我们在 subversion 中创建一个分支,进行生产环境所需的任何更改,标记发布号,导出存储库,将其上传到实时服务器上的新目录,并将文件符号链接到位。回滚就像符号链接回以前的版本一样简单。
问题是我们必须修改开发服务器和生产服务器需要不同的环境变量的那一步。这就像(取消)注释会重定向到错误位置的 htaccess 规则,因为域不同而换出 google map API 密钥,运行脚本将 javascript 最小化为一个混淆文件以保持大小和 http 连接减少等.
问题是如何才能更加自动化?我们希望将发布程序降到最低限度。我熟悉 Capistrano 和 Make 等工具的存在,但我不确定如何让它们修改所有必要的文件......你将如何组织这样的事情?当它每两周发生一次时,这值得花时间自动化吗?