您的位置:首页 > 编程语言

Ubuntu+Jenkins+GitHub学习搭建持续集成环境

2014-04-29 23:38 519 查看
一、对持续集成的理解
第一次接触持续集成是在2013年的5月份到10月份,当时在武汉兄弟桥科技有限公司做实习生,搞Android开发。基于Jenkins的持续集成环境,是师兄Arnold和大神Felix搭建的,所有的环境、插件都配置好了,我只是新建了一个Android项目Job和一个相关的测试Job。这个Android项目是使用maven构建,代码托管在公司的GitLab上(一开始是使用Subversion,后来迁移了),这里构建了个maven2/3项目;而相关的Android测试使用的是Robotium框架,也是maven构建,但是需要在不同的模拟器上运行测试,所以构建的是一个多配置项目。
当初只是师兄让我干什么我就干什么,并没有什么思考,也没有觉得这个持续集成有什么作用,唯一能看到的成果是,每次build后,能生成一个可视化的测试报告(基于Spoon开源框架)。
2013年10月份去了百度做QA实习生,这时候与Jenkins打交道的时间就多了。不过大公司的持续集成平台已经很Ok了(后来部门内部我们同事自己也搭建了一个),也不需要你一个实习生去管太多细节,你只要能用好,所以还是new a job。不过部门内部,从无到有,我还是体验到了持续集成的好处:(1)统一了RD和QA的编译环境,不同RD的编译环境不同,RD和QA的编译环境不同,可能导致模块集成、测试出问题;(2)规范了RD的协同开发流程,之前每个人都在主干修改提交,后来改成了拉分支修改提交,需要集成或测试则合并到主干;(3)维护了产品版本,待测版本,正式可上线版本,保证QA和OP能拿到正确的产品测试或上线、回滚;(4)方便了RD、QA、OP的沟通,很多沟通都变成了只需告知构建号。
现在我对持续集成的理解是,规范化、自动化、流程化、可视化工作。规范化是指统一的代码库,统一的编译构建环境;自动化是指自动编译构建、自动化测试;流程化是指从开发到测试,再到上线,整套流程都规范有保证;可视化是指通过CI Dashboard可以知道工作的进度,每日的工作成果,出问题的情况等等。

二、Ubuntu+Jenkins+GitHub持续集成环境搭建
今天突然想试试Jenkins环境怎么搭建,于是就边查资料,边搭建,边写blog。
我在VMware装了个Ubuntu虚拟机,使用Secure CRT终端登录,在这个虚拟机上搭建Jenkins,然后使用最近维护的github上的项目(其实不能叫项目。。)来试着新建job。
主要步骤有:
1.安装Java环境
Jenkins是一个Java项目,提供的是一个war包,需要java支持。我安装的是openjdk-7-jre和openjdk-7-jdk,在Ubuntu系统中通过apt-get安装(当然也可以选择源代码包安装)。
2.安装Jenkins
(1)使用apt-get安装(我选择了这种)参考官网 https://wiki.jenkins-ci.org/display/JENKINS/Installing+Jenkins+on+Ubuntu wget -q -O -http://pkg.jenkins-ci.org/debian/jenkins-ci.org.key | sudo apt-key add -
sudo sh -c 'echo debhttp://pkg.jenkins-ci.org/debian binary/ >/etc/apt/sources.list.d/jenkins.list'
sudo apt-get update
sudo apt-get installjenkins
此种安装将jenkins作为一个服务,放在init.d目录下:
启动 sudo /etc/init.d/jenkins start
停止 sudo /etc/init.d/jenkins stop
(2)直接下载war包,然后手动启动 java -jar jenkins.war 或者可以将war包直接放入tomcat服务器。
3.安装和配置git插件
(1)在"系统管理->插件管理"下,在可选插件中选择安装Git plugin和Github plugin插件,安装之后重新启动就可以看到新的插件已经生效。
(2)然后新建一个job,源码管理里面选择git,RepositoryURL中输入git源,我的是git@github.com:wyhuster/JobHunting.git,发现有问题,
stderr: Host key verification failed. 即ssh的key没有配置
解决办法:在ubuntu中换到jenkins用户,su jenkins,然后再ssh-keygen -t rsa产生新的key对,将pub key填入你的github中。
(3)Credentials中填写你的github账号和密码。
这时候就可以手动触发一个构建,试试看有没有成功。
4.配置GitHub Web Hook
GitHub上有新提交时,会立即触发jenkins来拉取新代码构建。
在"系统管理->插件管理"下,我的钩子Post URL为http://192.168.23.128:8080/github-webhook/,在GitHub上相应项目的setting中新建一个webhook,添加这个url即可;或者填写github账号密码让jenkins自动管理hook
url。
由于我这个url是本地的url,github无法发送所以这个功能不能正常使用。

通过以上4步,基本上一个简单的ubuntu+jenkins+github环境搭建好了,接下来就是新建自己的job,设置各种触发条件,构建命令。
本人第一篇CSDN博客献给Jenkins~~
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: