我正在努力让我的头脑围绕 ANT、CI、SVN 和部署。我有一个开发服务器、一个登台/qa 服务器、一个生产服务器和构建服务器。
理论上,CI 构建服务器 (bamboo) 将运行构建和 (FTP??) 然后到开发服务器。在某个时候,我们将决定将构建部署到登台服务器。我将如何更新作为 ANT 任务一部分的 FTP 信息?当我们部署到生产服务器时,同样的问题也适用。
我正在努力让我的头脑围绕 ANT、CI、SVN 和部署。我有一个开发服务器、一个登台/qa 服务器、一个生产服务器和构建服务器。
理论上,CI 构建服务器 (bamboo) 将运行构建和 (FTP??) 然后到开发服务器。在某个时候,我们将决定将构建部署到登台服务器。我将如何更新作为 ANT 任务一部分的 FTP 信息?当我们部署到生产服务器时,同样的问题也适用。
我想你在找configuration management
?你的脚本本身应该做同样的事情,不管它们在哪里运行——开发、登台或生产。但是您可以为每个环境拥有配置文件,这些文件将具有特定于各自环境的配置值。脚本将从这些配置文件中读取值并适当地配置您的应用程序。
并且要回答您关于多个构建文件的直接问题,不,有单个构建文件和单个目标进行部署(多个目标不是必需的,但可以根据情况使用),详细信息如下:
所以给出一些细节:
拥有 dev.config、stage.config、prod.config(或.properties
文件)等配置文件。配置将包含机器 ips、环境其他部分的值等。配置和运行应用程序所需的任何东西那个环境。
假设您在 ant 中有一个“部署”目标。让它从命令行读取一些属性“环境”(-Denvironment=stage)
使用此属性读取配置文件和值并使用这些值进行部署。基于使用convention over configuration
的方法,其中有一些合理的默认值,只有当值与该特定环境的默认值不同时,配置文件才可能覆盖这些默认值。
将有一个目标,“环境”属性值指定要使用的环境配置。
你可以做两个任务,例如“ftp_to_dev”和“ftp_to_staging”,然后调用你想要的。