前言
使用jenkins 可以自动持续地拉取版本库的代码,并进行定时构建或执行指定命令。jenkins 已经有各大种主流配置管理工具的集成插件,只需要将源码使用的工具插件安装上,并在job配置页面的源码管理部分配置上代码来源,便可以轻松实现自动更新并构建。
以下以Accurev 为源码版本管理工具进行解析。
插件安装
系统管理 -->插件管理 --> 可选插件 --> Accurev ( 工具为git/svn 时同理)
系统设置
Accurev 安装完毕后 ,在系统管理 -->系统设置 里,可以发现多了一个Accurev 的配置。将 Accurev Server 的信息配置后保存。只有系统设置中先将Accurev server 配置好,在具体的job 中配置源码时,才能通过选择Accurev server 来配置其中的库和流。
源码管理
新建具体的项目,在源码管理中,选择Accurev 工具,Server 一项,是下拉菜单,只能选择在系统设置配置的server。
填写对应的Server ,Depot, Stream的信息
构建触发器
源码配置好后,便是在构建触发器中配置触发的条件,这里介绍两种:定时构建和轮询SCM ,其他的条件的用法在选项右侧的问号中有介绍。
语法:与linux crontab 的用法差不多。将右侧的问号展开,可得到更详细的说明:
Examples:
# every fifteen minutes (perhaps at :07, :22, :37, :52) H/15 * * * * # every ten minutes in the first half of every hour (three times, perhaps at :04, :14, :24) H(0-29)/10 * * * * # once every two hours at 45 minutes past the hour starting at 9:45 AM and finishing at 3:45 PM every weekday. 45 9-16/2 * * 1-5 # once in every two hours slot between 9 AM and 5 PM every weekday (perhaps at 10:38 AM, 12:38 PM, 2:38 PM, 4:38 PM) H H(9-16)/2 * * 1-5 # once a day on the 1st and 15th of every month except December H H 1,15 1-11 *
定时构建和轮询SCM的区别:
1. 定时构建是不管版本库是否有提交,到设置的时间点时便进行代码检出,风雨不变地进行想创建。
2,轮询SCM 是到设置的时间点时,检查是否有提交,有提交进行构建,没有提交便静默跳过。
脚本设置
在构建设置中,增加一个执行shell 的构建步骤,在shell 中填入 编译命令。
至此,一个 自动持续构建Accurev stream 的job 便设置好了。效果是,Jenkins 每隔15分钟轮询一次Accurev Server , 配置的源码Stream 是否有提交,如果有,则触发构建:更新代码,执行脚本。
此外,类似的项目可以设置在node 上构建,即不在master server 上构建,指定已经配置好的slave (如某个编译服务器),使代码更新到slave 上编译。
jenkins 节点服务器可见另一篇 :《Jenkins 常用插件 -- slave》
http://blog.leanote.com/post/gua_l/jenkins-slave
No Leanote account? Sign up now.