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. Linux Top 命令解析 比较详细

    [尊重原创文章出自:http://www.jb51.net/LINUXjishu/34604.html] TOP是一个动态显示过程,即可以通过用户按键来不断刷新当前状态.如果在前台执行该命令,它将独占 ...

  2. md5加密篇(一)

    /// <summary> /// 获取文件的md5摘要 /// </summary> /// <param name="sFile">文件流& ...

  3. js随机生成字母数字组合的字符串 随机动画数字

    效果描述: 附件中只有一个index.html文件有效 其中包含css以及html两部分内容 纯js生成的几个随机数字 每次都不重复,点击按钮后再次切换 使用方法: 1.将css样式引入到你的网页中 ...

  4. 利用redis分布式锁的功能来实现定时器的分布式

    文章来源于我的 iteye blog http://ak478288.iteye.com/blog/1898190 以前为部门内部开发过一个定时器程序,这个定时器很简单,就是配置quartz,来实现定 ...

  5. WPF动态改变主题颜色

    原文:WPF动态改变主题颜色 国内的WPF技术先行者周银辉曾介绍过如何动态改变应用程序的主题样式,今天我们来介绍一种轻量级的改变界面风格的方式--动态改变主题色. 程序允许用户根据自己的喜好来对界面进 ...

  6. PHP常用之封装分页工具类

    分页基本上是每个项目都会使用到的,所以呢,把它封装成一个工具类,以后直接调用就可以了(虽然TP框架的灰常强大,但是自己封一个也未尝不可.),这样既省时又省力还赚'工分'. 我封的这个分页工具类还比较完 ...

  7. select模型

    在Windows中所有的socket函数都是阻塞类型的,也就是说只有网络中有特定的事件发生时才会返回,在没有发生事件时会一直等待,虽说我们将它们设置为非阻塞状态,但是在对于服务器段而言,肯定会一直等待 ...

  8. 悲观的并发策略——Synchronized互斥锁

    volatile既然不足以保证数据同步,那么就必须要引入锁来确保.互斥锁是最常见的同步手段,在并发过程中,当多条线程对同一个共享数据竞争时,它保证共享数据同一时刻只能被一条线程使用,其他线程只有等到锁 ...

  9. [原创]Burp Suite web应用程序渗透测试神器

    [原创]Burp Suite web应用程序渗透测试神器 一 Burp Suite介绍 Burp Suite是Web应用程序测试的最佳工具之一,其多种功能可以帮我们执行各种任务.请求的拦截和修改,扫描 ...

  10. clip:rect()

    写进度条的时候用过这个方法,记录一下 它的用法是 .test{ clip: rect(<top>, <right>, <bottom>, <>left) ...