starter0 2015-02-12
SVN commit 自动触发 hudson job
项目组使用hudson进行自动化构建已经有一段时间了,一直以来使用的是定时构建,或者,由测试人员来手动触发构建,手动部署。当然,可以把hudson的build triggers的Poll SCM设置成* * * * *,让每分钟都去轮询,但毕竟这对服务器资源还是很浪费的。
这种方式虽然能解决日常工作中的问题,但总是感觉不爽,不够自动化,这些事情应该让计算机自己来完成,于是,近日一直在网上查找如何实现SVN commit的时候,自动触发 hudson job 并自动部署。查了很多资料,都没有解决我想要实现的效果。
其实,自动部署hudson已经有插件了,这个比较简单,这里就不赘述了。关键的问题是,当SVN commit的时候,如何来自动触发 hudson 启动 job。虽然也研究了hooks的使用,但是仍然没有找到我想要达到的效果。
今天无意中看到了一篇文章中提到 curl这个开源工具(http://curl.haxx.se/download.html),感觉很强大,关于这个工具的具体介绍,百度百科已经说的很详细了,此处略过。于是抱着试一试的态度,下载了这个工具包,放到服务器上,再通过设置hudson的post-commit hooks来启动hudson job,从而实现了 SVN commit 自动触发 hudson job的目标。具体做法:
1、下载curl.exe工具,解压到服务器硬盘;
2、复制服务器端SVN项目库hooks目录下的post-commit.tmpl 文件,并命名为post-commit.cmd;
3、编辑post-commit.cmd文件内容为:安装curl.exe的路径\curl http://地址/hudson/job/库名/build?delay=0sec
通过以上几步,即可实现在svn commit 的时候,自动调用指定的 job 进行编译和部署。希望此文对有和我需求一样的人有所帮助!!!