配置管理每日构建

配置管理每日构建

ID:14373053

大小:90.50 KB

页数:9页

时间:2018-07-28

配置管理每日构建_第1页
配置管理每日构建_第2页
配置管理每日构建_第3页
配置管理每日构建_第4页
配置管理每日构建_第5页
资源描述:

《配置管理每日构建》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、配置管理每日构建1.引言1.1.名词解释先了解一些名词,有的是我自创的:NightlyBuild字面直译为:每晚编译。实现了自动编译,摆脱了编译的手工劳动;对于大型系统,编译耗时,在晚间完成则节约了工作成本;实现版本号的自动管理(Build号,每次编译自增);milestone版本里程碑版本。在编译时,使用里程碑的代码。例如定义为RELEASE的里程碑,可以在每次重新将代码提升为RELEASE时,删除上一次建立的RELEASE的LABEL/TAG,再重新为新代码打上LABEL/TAG。但更好的方法是将稳定的LABEL记录在一个文件(如:PROMOTION)中,这个文件的

2、最新内容即为里程碑代码的标签(TAG/LABEL),删除LABEL/TAG的危险动作换成了新建LABEL/TAG和Checkin文件。sticky版本固定版本。有时想要编译某一固定状态(指定的LABEL/TAG)代码,可将这个LABEL/TAG传给编译系统,进行编译,这种编译方式称为sticky版本的编译。nightly版本使用最新的代码进行编译。如果代码自上次编译以来没有更改,则无需编译。版本号版本号的格式为:a.b.c.d。其中a-主版本号(Majorversion),b-副版本号(Minorversion),c-发布号(Release),d-编译号(build)。

3、主版本号和副版本号在项目计划中便已经指定,标志着重要的功能变动。Release版本号c,用于体现小的功能变更或用来管理项目的分支。build号则在每次编译时自动加1。PROMOTION版本提升。某一里程碑(LABEL/TAG标记)代码,随着开发周期的继续,如果能够顺利通过各级测试,并最终发布。则其对应的产品必然经历dailybuild版本、alpha测试版本、beta测试版本、release版本。Starteam版本控制系统,有专门的LABEL管理这种事件,叫做PROMOTION。对于其它版本控制系统,我们可以很容易的使用文件记录LABEL的方式相对应。Starteam

4、的PROMOTION请参见我的一篇文章《StarteamHowto》。版本控制系统版本控制系统,如:CVS、STARTEAM、PVCS、VSS等,是自动编译系统的基础。熟练掌握其名利行工具的使用是关键。推荐使用CVS作为版本控制系统,因为其命令行功能最强大。1.2.建立系统的命令行编译过程如果没有命令行的编译过程,想要构建自动化的编译系统,简直是天方夜谭。对于UNIX的系统,支持命令行编译自然不再话下。简单至一个Makefile,到复杂的SHELL脚本、automake+autoconf系统。对于Windows上的项目,比如说VC,其实也有命令行支持。从VC5.0的NM

5、AKE到VC6.0的MSDEV命令。但是Windows平台的shell实在功能有限。查一下Windows的关于batchfile的帮助吧,只有可怜的半页,DOS时代的古董。我们需要使用扩充的命令行工具来扩展。可以的选择有JAVA、PERL、PYTHON、CYGWIN。我选择了Cygwin,是因为我只会Unixbash。8-)1.3.关于版本号自增实现BUILD号自增,其实只要将版本号写入文件,并版本控制。每次编译成功后,版本号+1,再重新Checkin即可。对于只需要一个版本号的系统,非常简单。对于复杂的系统,比如说一个Windows平台的程序,可能每一个dll,exe

6、都需要不同的版本。也可以把这些相关信息写入一个文件,每次编译更新完毕代码后,在将一个文件控制的众多版本信息分别写到其它独立的版本控制文件中(如VC中的*.rc文件中的FileVersion,ProductVersion等)。版本号的格式,参见:版本号说明。1.4.关于代码更新检查如果代码没有更改,自动编译系统还要去编译,去使版本号递增,实在太傻,浪费时间,也会使开发、测试陷入混乱。可以将上一次编译的时间记录在一个文件中,再次编译时,先比较自从上次编译以来,到现在为止是否有代码改动,如果有代码改动则版本号自增,并触发编译系统。这看起来有点不可思议,其实一个命令就够了:$c

7、vs-qdiff--brief-D"上一次编译日期"1.5.关于软件包签名和下载认为编译完成就完事大吉,是错误的。如果不进行进一步的处理,下次编译将会冲掉上次编译的结果。因此需要把生成的软件包,按照规则重新命名,例如加上版本号和编译日期。如果软件包不便于访问,也不利于工作的开展。在编译/发布机提供FTP服务是最理想的。还要说说软件签名。不但是为了防止黑客的恶意篡改,也是协助下载用户对软件包进行完整性检查的方法。参见我的一篇文档:《PGP/GPGHOWTO》。1.6.软件开发周期和版本号演进示意图(图略)2.自动编译系统流程图3.自动编译系

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。