经历了持续两周的人肉集成,今天上午抢得一台Linux机器,终于尝试用hudson来替代人肉构建。
Hudson的安装和配置远比想象的简单,只要下载发布的war包,在相应的目录执行
nohup java -jar hudson.war > hudson.log 2>&1 &
即可启动到后台
hudson的web图形界面可以胜任几乎全部工作。我们主要使用maven来构建项目,hudson提供了非常强大的功能:邮件提醒(通过插件支持twitter/jabber/irc提醒);自动构建,除了基本的定时构建以外,hudson还会自动解析其管理的项目之间的依赖关系,从而实现级联的构建,这个功能非常震撼。
刚刚上手以后我还安装了两个插件。一个是build-timeout插件,可以之间一次构建的超时时间:我们的项目中有老大写的交互式的maven配置插件,一旦这个插件在自动构建时运行会阻塞构建的流程。另一个是scp发布插件,可以自动scp一个文件到远程服务器上,我用这个插件来把构建版本发布到运行环境中,只要在适当的时候重启一下运行环境的服务器就可以实现部署了。不过scp插件由于上游依赖的问题貌似不支持putty生成的privatekey,这是暂时的美中不足。
配置了整整一天,终于有了CI工具,我就彻底解放出来可以做其他事了。
插件里面scp完了可不可以直接重启运行环境的service?
这样你就不用人工重启了,呵呵
好像还没有这个功能,jetty不能远程重启
不过要真是一小时一重启也不太好
jetty可以本地重启的话,你可以远程ssh执行之