Hudson配置教程

hudson是个优秀的开源工具,可惜是小日本开发的。这点不爽。拿过来用吧。我们公司(Qisda)的用途是 用来晚上定时的抓Android的代码,然后编译,保存img文件,然后根据结果发出mail来,这就是通常说的NightlyBuild. 它的用途就要是 定时在指定的某台机器上做某些事件。

本文会讲述如下内容:

1 hudson的安装

2 hudson配置定时抓代码编译代码。

上网都搜了。没有很连贯的介绍这个用法的。这个是我自己通过长时间的琢磨弄透彻的。

1 安装过程

先下载下来,下载地址自己找,很好照的。可惜从官网上下载比较慢,没办法,用wget断点续传吧。20多M下载下来。hudson.war

这里说的安装都是安装到ubuntu里。window下我没试过。再说现在用window的很少了吧。淘汰了吧?

然后配置使其开机运行。两种方式可以达到效果,一种是部署到tomcat里。把hudson.war放到tomcat的 webapp目录下。删除该目录下的所有东西。然后mv hudson.war ROOT.war 这样开机的时候,tomcat会自动运行。如果不能自动运行。你需要看看/etc/init.d目录下。根据runlevel设置软连接使其开机启动。这个相信大家很清楚。不多说。

还有一种是 自己写点开机启动脚本。通过java -jar hudson.war 在开机的时候让它直接运行。我们公司目前就是用的这个方法。这里最好设置下 hudson_home环境变量用来保存配置信息。

弄完这个后,重新启动机器就可以在客户端通过IP 端口号8080访问了。

2 配置过程

我们公司的情况是用hudson管理5台机器。每台机器做不同的事情。要实现这个效果可以 新建个slaver. 通过ssh建立连接 输入用户名 密码就可以连接到节点机器上了。

下一步就是创建个job,填写job的名字。然后设置这个job

可以设置这个job保持编译的天数,可以设置这个job是否activie的。可以设置这个job在那个节点上运行。这个节点就是刚才创建的slaver.

还是可以设置这个job在这个节点的工作目录。也就是环境变量workspace。

下面就是设置这个job在什么时间启动。这个设置方法类是crontab 格式 分 时 日 月 星期

在下面当然设置这个job做什么事情了。比如要执行哪个脚本。我们这抓code也是通过repo git抓代码。然后编译。

最后可以在archive the Artifacts里设置保存哪些文件。换可以设置这个job完成后再执行哪个job.

甚至可以填写mailserver的地址。让其帮助发mail. 不过我们公司发mail都是我自己用python写的。

这样保存以后,就可以定时运行了。

更强大的功能是可以轮训执行。比如 大家都在checkin android代码,我向做到每次有人check in,我就把代码抓下来,然后让hudson根据系统的负载情况随机的选择一台loading轻的来编译。这就是平常说的triggerBuild.

过程是大家把代码通过git checkin 到 gerrit里。然后 gerrit触发hudson,hudson选择一起机器做快速build. 完成后把本次checkin的diff信息发出来,project leader可以根据这个信息判断本次check in是否merge进去。

回想往事,现在说起来蛮轻松自在的。可是当时不明白也费了好大的劲。看网上没这方面分享。特地把经验分享給大家。明基 臧春杰 移动通信研发中心。

相信你已经有收获了。看帖是收获。回帖是美德!

posted on 2012-10-16 13:35  nanjing  阅读(2625)  评论(0编辑  收藏  举报

导航