在我现在的游戏项目中,基本上每天都要代码,各种游戏资源需要更新。而且每次从SVN服务器上更新代码后都要编译好久。另外资源的更新也是一件很麻烦的事情,因为我们的所有游戏资源都是统一放在一个FTP上面,每个版本发布之后都会把最新的游戏资源放在里面。每次从FTP上把好几G的数据更新下来很是费时间。于是我在想能不能写个小程序让这些都自动执行,即能够设定一个时间。例如每天的凌晨从FTP上把资源更新下来,然后再从SVN上把最新的代码更新下来,最后让程序自动编译。每一步都有详细的log记录,第二天上班后就可以取到最新的版本了。
实际我的上述方法就是Daily Build的雏形。Daily Build又称“nightly build”,是将一个软件项目的所有最新代码取出,从头开始编译、链接,用安装软件包将链接好的软件安装好,运行安装后的软件,运行测试软件包对主要功能进行测试(smoke test),发现错误并报告错误的完整过程。我的上述想法只是没有自动安装和测试的步骤。
其实实现起来也不是很难,最简单的方法就是写个批处理,然后把批处理程序挂到控制面板的“Scheduled Tasks”中。这种土办法自己要玩玩还行,真要用到项目中去还必须使用专业的软件工具。我在网上搜了一下,发现一款名叫Visual Build的软件还不错,以后有机会要好好介绍一下。
下面还是稍微介绍下每日构建吧:
在微软软件开发中,每日构建是最重要的过程之一,被称为微软产品开发的“心跳”。简单来看,每天构建系统将整个产品解决方案完整构建一遍,生成的目标文件和安装文件被放置在一个共享位置。接着,安装文件被自动部署到release server上,随后可以自动运行BVT(b