闫国玉 2009-11-06
本文档介绍一些在使用Hudson过程中不是必须的,但十分有用的实践。
目录
1.1 使Hudson一直处于安全状态。 2
1.2 定期备份Hudson目录(指Hudson实例)。 2
1.3 使用"file fingerprinting"管理依赖。 2
1.4 可靠的构建就是完全从源代码控制系统取出的干净的构建。 2
1.5 与问题跟踪系统紧密集成,如JIRA或Bugzilla,以简化维护一个更改日志的需求。 2
1.6 与存储库浏览器工具紧密集成,如果您正使用Subversion作为源代码管理工具,像FishEye。 2
1.7 每运行一次Java构建时就有规律地配置您的作业以生成趋势报告和执行一系列的自动化测试。 2
1.8 在最空闲的磁盘空间的分区内设置Hudson主目录。 2
1.9 先归档不再使用的作业,然后再删除它们。 2
1.10 为您创建的每个维护或开发分支设置一个不同的作业/项目。 3
1.11 为并行的项目构建分配不同的端口,以避免在同一时间开始所有的作业。 3
1.12 设置电子邮件通知以映射到该项目的所有开发者,这么做是为了让团队中每一员都能掌握到该项目的当前状态。 3
1.13 采取适当的步骤,确保失败时能尽快以报告的方式获悉。 3
1.14 为您的维护任务编写作业,诸如清理操作以避免磁盘空间已满的问题。 3
1.15 为每次成功构建创建一个标记、符号或者代码库基线。 3
1.16 在运行该构建目标/对象之前先配置Hudson引导程序以更新您的工作副本。 3
1.17 为不同项目建立不同的View。 3
1.1使Hudson一直处于安全状态。
最好的做法是在一个Hudson实例中验证用户和实施访问控制。
在默认配置中,Hudson不执行任何安全检查。这意味着任何人都可以进入该网站配置Hudson和作业实例,然后执行构建。虽然此配置在内部使用和快速安装时通常是可以接受的,但这是高风险的做法,比如有人不小心删除您的构建作业,或重配置您的作业为每分钟构建一次,或在开始很多构建的同时重建您的构建实例等等。
1.2定期备份Hudson目录(指Hudson实例)。
1.3 使用"file fingerprinting"管理依赖。
当您的Hudson中存在相互依赖的项目时,跟踪项目的这个版本的依赖另外项目的某一个版本时往往变得很困难。因此Hudson 支持"file fingerprinting"以便简化这些步骤,所以最好尽量使用它。
1.4可靠的构建就是完全从源代码控制系统取出的干净的构建。
为了确保一个构建是可重用的,该构建就必须完全是从源代码控制系统取出的一个干净的构建。这种做法也就意味着所有的代码,包括第三方jar包,构建脚本,发布说明等等都必须是从源码控制系统取出的。
1.5与问题跟踪系统紧密集成,如JIRA或Bugzilla,以简化维护一个更改日志的需求。
此集成能帮助您当构件产生后跟踪其变化,包括构建状态,构建是否完全按需求执行或者有缺陷,然后链接到实际构建结果和构件。
1.6与存储库浏览器工具紧密集成,如果您正使用Subversion作为源代码管理工具,像FishEye。
存储库浏览器提供快速地更新在Subversion存储库的最新资源。它也对比现时构建和以前构建之间发生的哪些变化提供了差异图形表。
1.7每运行一次Java构建时就有规律地配置您的作业以生成趋势报告和执行一系列的自动化测试。
趋势(图)能帮助项目经理和开发人员快速可视化当前项目的进展情况。而且,单元测试往往并不能为我们提供足够的信心,尤其是在该软件应符合理想的交付阶段之时。你对该软件测试越多,它就越能使该软件符合理想中的软件质量。
1.8在最空闲的磁盘空间的分区内设置Hudson主目录。
Hudson需要一些磁盘空间执行构建和文件归档。所有的设置、构建日志、构件档案都存放在Hudson_HOME目录下。只需存档此目录来进行一次备份。同样,恢复数据也只需从一个备份中取代当前Hudson_HOME目录的内容。
1.9先归档不再使用的作业,然后再删除它们。
所有不再使用的作业都应归档,如果有需要这也能使它们重新投入使用。
1.10为您创建的每个维护或开发分支设置一个不同的作业/项目。
使用CI工具的优势之一就是在软件开发生命周期的早期发现问题。为您创建的每个分支设置一个不同的作业/项目,这将最大限度地有助于在早期检测到问题,以支撑并行开发的成果和降低风险。
1.11为并行的项目构建分配不同的端口,以避免在同一时间开始所有的作业。
多个任务同时运行时往往会导致冲突。应尽量避免计划在同一时间开始所有的工作。为并行的项目构建分配不同的端口,以避免构建冲突。
1.12设置电子邮件通知以映射到该项目的所有开发者,这么做是为了让团队中每一员都能掌握到该项目的当前状态。
在人员列表每个成员中用他(或她)正确的电子邮件地址进行配置以及他(或她)当前应扮演什么样的角色。
1.13采取适当的步骤,确保失败时能尽快以报告的方式获悉。
例如,在(运行)整个测试套件之前运行一系列有的“试探性测试”可能也是恰当的。
1.14为您的维护任务编写作业,诸如清理操作以避免磁盘空间已满的问题。
1.15为每次成功构建创建一个标记、符号或者代码库基线。
1.16在运行该构建目标/对象之前先配置Hudson引导程序以更新您的工作副本。
1.17为不同项目建立不同的View。
注:此文档内容部分来自互联网,部分个人整理,解释权归原作者所有。下载本文