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进去。

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

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

hudson配置教程的更多相关文章

  1. openvpn配置教程

    openvpn配置教程 本文是为解决本地服器能从外网访问web页,从新改写(临摹) 烂泥:ubuntu 14.04搭建OpenVPN服务器这篇文章 腾讯云为服务器,本地服务器为客户端 一.服务器安装o ...

  2. VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程

    VMware Workstation虚拟机中的Linux通过NAT模式共享上网配置教程 在VMware Workstation虚拟机下面,Linux虚机要上网,一般是桥接模式,但我自己的电脑上网的环境 ...

  3. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程之更改图片和附件上传路径

    本文是接上一篇博客,如果有疑问请先阅读上一篇:百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程 默认UEditor上传图片的路径是,编辑器包目录里面的net目录下 下面就演示如 ...

  4. 百度在线编辑器UEditor(v1.3.6) .net环境下详细配置教程

    UEditor是百度开发团队奉献的一款很不错的在线编辑器.在百度自己很多产品上都有应用,本文主要是该编辑器的配置教程. 1.下载UEditor,当前最新版本是1.3.6.这里下载的.net版本,选择U ...

  5. OpenGL 4.3配置教程

    OpenGL 4.3配置教程 下载开发包 需要下载的开发包主要包含如下几个组件:freeglut+glew+ OpenGL.Development.Cookbook+源码+GLM+SOIL. Open ...

  6. Hadoop集群安装配置教程_Hadoop2.6.0_Ubuntu/CentOS

    摘自:http://www.powerxing.com/install-hadoop-cluster/ 本教程讲述如何配置 Hadoop 集群,默认读者已经掌握了 Hadoop 的单机伪分布式配置,否 ...

  7. PHP调试工具Xdebug安装配置教程

    说道PHP代码调试,对于有经验的PHPer,通过echo.print_r.var_dump函数,或PHP开发工具zend studio.editplus可解决大部分问题,但是对于PHP入门学习的童鞋来 ...

  8. Python学习 1 一 Python2.75的安装及环境配置教程

    Python2.75的安装及环境配置教程 Python的语法简洁,功能强大,有大量的第三方开发包(模块),非常适合初学者上手.同时Python不像java一样对内存要求非常高,适合做一些经常性的任务方 ...

  9. 阿里云ECS专有网络产品三个步骤配置教程

    阿里云ECS专有网络产品三个步骤配置教程 阿里云专有网络节点已开通地域:美国硅谷可用区1B,新加坡可用区A,北京可用区A,深圳可用区A,杭州可用区D,上海可用区B 举个栗子:购买 美国硅谷可用区1B  ...

随机推荐

  1. PHPExcel解决内存占用过大问题-dw 查找memoryCacheSize把1M改为2048M

    http://blog.sina.com.cn/s/blog_4ec7952d0101fcrd.html PHPExcel解决内存占用过大问题-设置单元格对象缓存 PHPExcel是一个很强大的处理E ...

  2. javascript 浏览器

    hashchange事件 window.location.hash.slice(1) 添加和修改历史记录条目LINKHTML5引进了history.pushState()方法和history.repl ...

  3. 17 个 tar 命令实用示例【转】

    Tar(Tape ARchive,磁带归档的缩写,LCTT 译注:最初设计用于将文件打包到磁带上,现在我们大都使用它来实现备份某个分区或者某些重要的目录)是类 Unix 系统中使用最广泛的命令,用于归 ...

  4. JSP基本语法--实例演练

    基本语法概括:<%@page>,<%@include>,<jsp:include>,<jsp:forward> 加上数据库操作,可以开发动态web了. ...

  5. 编写Linux/Unix守护进程

    原文: http://www.cnblogs.com/haimingwey/archive/2012/04/25/2470190.html 守护进程在Linux/Unix系统中有着广泛的应用.有时,开 ...

  6. subversion-fundamental concepts

    1.在使用svn 的时候,版本号version的问题一直困恼. 如在目录/app/controller上面右键选择查看该目录的 show log ,弹出的窗口显示的Revision log.单击每一条 ...

  7. socket小解

    要理解socket,首先得理解TCP/IP协议族, TCP/IP (Transmission Control Protocol/Internet Protocol)传输控制协议/网间协议 定义: TC ...

  8. Spring Boot 系列教程14-动态修改定时任务cron参数

    动态修改定时任务cron参数 不需要重启应用就可以动态的改变Cron表达式的值 不能使用@Scheduled(cron = "${jobs.cron}")实现 DynamicSch ...

  9. hdu5269 ZYB loves Xor I

    分治法和字典树都可以,都是递归,但字典树耗内存 从第一bit开始,若相同则xor为0,分到同一部分,不相同则统计,且此时lowbit为这一bit,最后结果要乘以2 /*分治法*/ #include&l ...

  10. VIM继承C语言(转)

    在下面的基础上加上了astyle sh.c --style=kr --indent=spaces --indent-cases --pad-header --pad-oper --unpad-pare ...