• 登录 | 注册
John_cdy的专栏
学无止境
  • 目录视图
  • 摘要视图
  • 订阅
有奖征资源,博文分享有内涵 6月推荐文章汇总 CSDN博文大赛初赛晋级名单公布 关注CSDN社区微信,福利多多
构建基于Jenkins + Github的持续集成环境
分类: Jenkins 2012-07-11 23:335868人阅读 评论 (2) 收藏举报
项目构建 subversion git tomcat 浏览器 ide
搭建持续集成首先要了解什么是持续集成,带着明确的目标去搭建持续集成环境才能让我们少走很多弯路。持续集成(Continuous integration)简称CI,是一种软件开发的实践,可以让团队在持续集成的基础上收到反馈并加以改进,不必等到开发的后期才寻找和修复缺陷。当然要明白的是持续集成环境的搭建也不是一劳永逸的,随着软件项目复杂度的增加,持续集成的环境同样要加以维护以确保集成环境的可靠性。
持续集成的重要要素:1.统一的代码库。
2.CI服务器
3.自动化测试和构建的脚本
4.Slaves
持续集成的流程:CI服务器控制持续集成的整个过程,轮询代码库更新,根据预定义的脚本进行项目的构建,服务器将任务分配到Slave端。这就是整个持续集成的过程,我们需要根据我们的项目需求,制定好一个完善的持续集成方案,然后根据方案选择CI服务器和版本管理软件,我们的项目选择了Jenkins+Github的持续集成环境,这也是我要主要和大家讲述的。
为什么要选择Jenkins?
Jenins是现在非常流行的持续集成CI服务器,这与它的前身Hudson也有着很大的关系,Jenkins易于安装,不需要数据库的支持,直接通过Web界面进行配置,而且集成了RSS/Email的通知机制,支持分布式构建,具有丰富的插件,这些都是Jenkins相比其他持续集成服务器的优势所在。
对于版本控制软件的选择要看项目需要了,可能是SVN也可能是Git,一般来说Jenkins都有提供插件支持,下面讲解一下Jenins+Github持续集成环境搭建的细节。
这个持续集成环境构建的主要流程就是Jenins会在后台运行,轮询版本控制的存储库,当发现版本库出现变更,就会通过预定义的构建脚本进行项目的构建,Jenkins会根据项目需求将构建的任务分配到Slave端。一般的项目构建过程主要分为自动化编译和自动化测试两个阶段,这同样是你脚本发挥作用的阶段。
1.Jenkins安装 进入Jenkins官方网站下载最新的Jenkins,Jenkins提供war包的下载和各种操作系统的安装文件,选择war包即可。Jenkins的启动方法有两种:第一种是使用tomcat直接打开,就是把jenkins.war放入tomcat下的 webapps目录下,当启动jenkins时,就会自动在webapps下建立jenkins目录。然后再浏览器的地址栏输入http://localhost:8080/jenkins另一种方法要确保系统中安装了jdk,并且配置了环境变量,检测方法就是在命令行输入java回车后有多行的命令符提示。直接在命令行输入java -jar jenkins.war即可启动jenkins,默认会运行在8080端口,切换到浏览器的地址栏输入http;//localhots:8080,localhost可以改成ip地址。看到Jenkins的页面说明jenkins已经部署成功了。
2.插件安装 在"系统管理-<插件管理"下可以看到Jenkins缺省安装了CVS,Subversion,Maven和SSH,这些主要是版本控制的软件的相应插件,不过我们使用的是GitHub进行版本控制,所以要在可选插件中选择安装Git plugin和GitHub plugin插件,安装之后重新启动就可以看到新的插件已经生效。
3.环境配置 进入"系统管理-<系统设置"设置Jenkins的相关参数。主要是设置Git和GitHub插件的参数,在Git下的Path to executable一栏添加本机的git.exe的路径,在Git plugin下的添加本地Git的user.name和user.email的信息,在GitHub Web Hook下添加GitHub账户的相关信息。如果想要使用邮件的功能,需要在邮件通知的一栏添加SMTP服务器和邮箱的相关信息,添加后点击Test的按钮测试一下能否正常发送邮件,这一功能可以在后面的项目中使Email Notification功能得以正常使用。
4.构建项目 点击"新Job",输入"任务名称",选择"构建一个自由风格的软件项目",点击"OK"。系统自动进入"任务配置"界面。
5.配置构建方法 在GitHub project中输入git地址。
在"源码管理-<Git"下的Repository URL输入Repository的Git地址(PS:可以选择分支)。
在"构建触发器"中选择"Build when a change is pushed to GitHub "和"Poll SCM ",这两项的作用分别是当GitHub有版本库更新时触发Jenkins进行构建和定期检查版本库是否有更新,如果有更新则触发Jenkins进行构建。这里要注意Schedule语法,例如"*/2 * * * *"表示每隔2分钟检查一次。
点击增加构建步骤,选择Execute Windows batch command,并输入"%VS10COMNTOOLS%..\IDE\devenv.com" "%WORKSPACE%\Test.sln" /Build "Debug|Win32",devenv.com是MSVC提供的命令行构建工具,这里的"%VS10COMNTOOLS%..\IDE\devenv.com"为devenv.com的路径,如果没有配置响应的环境变量,构建的时候就会找不到路径,所以可以用devenv.com的实际路径代替。在"构建后操作"中可以添加发送邮件的相关信息。
点击保存,项目的配置就完成了,点击立即构建,Jenkin就会从github上将代码clone下来,这里我在github上存放了一个HelloWorld的vs项目,所以我的命令行为"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\devenv.com" "%WORKSPACE%\HelloWorld\HelloWorld.sln" /Build "Debug|Win32",然后自动编译项目,如果构建成功会是蓝色标记,如果构建失败会是红色标记。
构建完成后可以在项目中看到项目构建的具体信息,如工作区、变更集和每次构建的控制台输出等。这就是一个基本的基于Jenkins和GitHub的持续集成环境的搭建。
Tips: 1.对于刚接触Jenkins的同学可能有很多需要配置的地方不知道要怎么填,这时可以点击每一个填空后的?,就会弹出详细的提示。
2.官方的wiki是很好的入门教程 https://wiki.jenkins-ci.org/display/JENKINS/Home
3.多多实践,多多查看Jenkins配置的使用方法~~
以上我说的方法都是比较简单的方法,可以方便你快速进行搭建,Jenkins的搭建有很多种方法,例如使用Tomcat,Java web等等,我在资源栏上传了一本英文版的介绍Jenkins的书,是官方推荐的书籍,讲的很详细,需要的可以去下载。另外Jenkins相关的资料非常少,想要快速解决自己遇到的问题的话可以去freenode的#jenkins这个频道,里面有挺多jenkins方面的专家,遇到一些不懂的问题或者是你不知道是否能实现的问题他们都能给你提供很好的建议。
更多 0
  • 上一篇实习第3天
  • 下一篇Windows批处理命令教程
0
0
主题推荐
github 自动化测试 版本控制 操作系统 软件开发
猜你在找
基于UIAutomator+Jenkins Android自动化测试 实现
Hudson/Jenkins--配置TestNG/JUnit的email-ext email模板
Maven 使用Cargo 快速部署Web项目
varnish配置
Android提高篇之自定义dialog实现processDialog“正在加载”效果、使用Animation实现图片旋转
见过最好的git入门教程
Yii Framework 开发教程(12) UI 组件 ClipWidget示例
分割字符串(一)
CentOS下Yum安装Mysql和JDK和tomcat
impdp 导入时假死现象
查看评论
2楼 阳光在冬季 2012-10-31 11:54发表 [回复]
我在用emma生成代码的coverage报告时遇到过这种现象,但原因是与jenkins无关的,能具体说一下你的情况吗?
1楼 double_jia 2012-10-30 17:41发表 [回复]
请问你有没有遇到变更集中文乱码的问题~~
您还没有登录,请 [登录] 或 [注册]
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
核心技术类目
全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap
个人资料
阳光在冬季
  • 访问:59232次
  • 积分:945分
  • 排名:第17018名
  • 原创:30篇
  • 转载:12篇
  • 译文:0篇
  • 评论:29条
个人主页
johncdy.me
博客已迁移至个人主页,希望大家支持~
文章搜索
文章分类
  • cocos2d-x(10)
  • C++(4)
  • 读书笔记(1)
  • Installshield(6)
  • 实习随笔(14)
  • Jenkins(3)
  • windows批处理(2)
  • Git(2)
  • Android基础教程(0)
文章存档
  • 2013年10月(2)
  • 2013年03月(1)
  • 2012年11月(1)
  • 2012年09月(1)
  • 2012年08月(4)
展开
阅读排行
  • 构建基于Jenkins + Github的持续集成环境(5846)
  • Cocos2d-x 内存管理(4414)
  • 如何使用IRC(2738)
  • 实习第5天(2407)
  • 实习第16天(2211)
  • 实习第1天(2203)
  • 实习第9天(2196)
  • 实习第28天(2187)
  • 实习第3天(2081)
  • Jenkins:VS项目的自动化编译(2041)
评论排行
  • Cocos2d-x 内存管理(8)
  • 实习第1天(4)
  • 实习第28天(4)
  • Cocos2d-x学习笔记(4)- 触摸反馈(3)
  • 如何使用IRC(2)
  • 构建基于Jenkins + Github的持续集成环境(2)
  • InstallShield打包的setup文件命令行参数(2)
  • InstallShield自定义安装界面(2)
  • C++内存分配(2)
  • 实习第46天(0)
推荐文章
最新评论
  • InstallShield打包的setup文件命令行参数
阳光在冬季 :@forcj:iss脚本是录制生成的,可以在录制结束的时候得到。当然自己也可以写,语法比较简单。
  • InstallShield打包的setup文件命令行参数
forcj :iss脚本里面怎么写呢
  • Cocos2d-x 内存管理
spring1990 :很好,谢谢楼主分享
  • Cocos2d-x 内存管理
ruf :给个实例看下吧:cocosObj *pxx = cocosXXX::xxx(); (假设此时引用为1...
  • Cocos2d-x 内存管理
ruf :至于retain操作,你想存储一个引用,你想要保证你这里有一份引用,在别人释放的时候不被释放,当然要...
  • Cocos2d-x 内存管理
ruf :不推荐使用他自动内存管理?是你没明白他的好处,下面的解释未必完全正确,我只是刚接触cocos2d-x...
  • Cocos2d-x 内存管理
阳光在冬季 :@wonderkai:嗯,这里确实是我表达的问题,其实是想说新创建一个对象的时候会加入到自动释放池,...
  • Cocos2d-x 内存管理
wanwanwanwang7881041 :2楼正解
  • Cocos2d-x 内存管理
Colin-Liao :应该是create()的对象才是加入到自动释放池,而new的对象不会在自动释放池中出现除非手动加入
  • Cocos2d-x 内存管理
chchpd :你好,这段时间也在看cocos2d的内存管理,能否给讲讲你的cocos2d-x内存管理的控件的思路啊...
公司简介 | 招贤纳士 | 广告服务 | 银行汇款帐号 | 联系方式 | 版权声明 | 法律顾问 | 问题报告 | 合作伙伴 | 论坛反馈
网站客服 杂志客服 微博客服 webmaster@csdn.net 400-600-2320
京 ICP 证 070598 号
北京创新乐知信息技术有限公司 版权所有
江苏乐知网络技术有限公司 提供商务支持
Copyright © 1999-2014, CSDN.NET, All Rights Reserved 
更多相关资源: git jira

构建基于Jenkins + Github的持续集成环境相关推荐

  1. 基于 Jenkins 快速搭建持续集成环境--转

    源地址:http://www.ibm.com/developerworks/cn/java/j-lo-jenkins/ 持续集成是一种软件开发实践,对于提高软件开发效率并保障软件开发质量提供了理论基础 ...

  2. 基于 Jenkins 快速搭建持续集成环境

    持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题.尤其是近些年来,敏捷(Agile) 在软件工程领域 ...

  3. 基于Jenkins快速搭建持续集成环境

    看了园友张善友的博文,尝试成功.便有此作.原网址: 基于 Jenkins 快速搭建持续集成环境 天下事有难易乎?为之,则难者亦易矣:不为,则易者亦难矣. 首先要学会使用MSBuild构建脚本 附网址: ...

  4. 基于Jenkins 快速搭建持续集成环境

    2019独角兽企业重金招聘Python工程师标准>>> 持续集成概述 什么是持续集成 随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开 ...

  5. Jenkins——Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包)

    Jenkins--Jenkins介绍+基于云平台的Jenkins安装和持续集成环境配置(插件+用户权限+凭据+Maven打包) 持续集成及Jenkins介绍 软件开发生命周期 什么是持续集成? 持续集 ...

  6. Jenkins安装和持续集成环境配置

    Jenkins安装和持续集成环境配置 持续集成说明 Jenkins安装 Jenkins插件管理 下载中文汉化插件 Jenkins用户权限管理 安装Role-based Authorization St ...

  7. jenkins + Git 搭建持续集成环境

    2019独角兽企业重金招聘Python工程师标准>>> 持续集成通过自动化构建.自动化测试以及自动化部署加上较高的集成频率保证了开发系统中的问题能迅速被发现和修复,降低了集成失败的风 ...

  8. 【Jenkins+RF】从零搭建Jenkins+Robot Framework持续集成环境

    转自:https://www.jianshu.com/p/ef8d3109ac5f    感恩 安装Jenkins 系统环境:CentOS Linux release 7.3.1611 x86_64 ...

  9. Jenkins+Svn搭建持续集成环境和自动部署

    Jenkins+Svn搭建持续集成环境和自动部署 一.环境说明 centos 6.8     ip:192.168.1.26 二.运行环境配置 1.安装java环境,下载jdk并放在/usr/loca ...

最新文章

  1. Java初学者如何自学和自己定位解决问题
  2. CVPR 2020录用率十年最低,商汤官宣62篇入选
  3. js中split字符串分割示例
  4. 使用java进行婚礼庆祝_#102030:在30天内运行20 10K,庆祝Java 20年
  5. java源代码加密+使用proguard混淆java web项目代码+自定义Classloader
  6. [LeetCode]题解(python):062-Unique Paths
  7. 二维数组传入函数_C++二维动态数组memset()函数初始化
  8. python解常微分方程龙格库_求解常微分方程组初值问题的龙格库塔法分析及其C代码...
  9. 如何在 Mac、iphone 中快速清除已完成的提醒?
  10. pywin32库 : Python 操作 windows 系统 API
  11. 在谷歌云盘训练YOLOV5模型
  12. ubuntu 14安装droidcam调用手机摄像头
  13. 约瑟夫问题 c语言数组,约瑟夫问题的数组实现
  14. c语言去尾法和进一法的例子,进一法或去尾法在生活中的应用教学案例.doc
  15. mysql migration toolkit 使用_MySQL Migration Toolkit的使用
  16. R语言dplyr包学习笔记(吐血整理宇宙无敌详细版)
  17. android顶部导航高度,快速实现顶端导航栏(ToolBar+TabLayout+Viewpager)
  18. 佳音图php,PHP5实例教程 简简单单生成条形码
  19. Freertos基本概念----(猫和老鼠)
  20. zigbee终端入网

热门文章

  1. 【Puzzle】基于 Vue 和 Webpack4 的可插拔式微前端架构
  2. 歌礼丙型肝炎新药临床试验申请获批
  3. JZOJ ???? Or
  4. php 代码质量检查_代码规范工具 phpcs 质量检查工具 phpmd
  5. 【观察】迎接5G新时代,亚信科技的原力进化
  6. 常见的抓包检测及抓包方案
  7. Jupyter Notebook(Anaconda)【快捷键】
  8. C语言实现过滤ASCII在0~127范围内的字符,并去除重复的字符
  9. java创建画板_Java版画板的实现方法
  10. windows下使用命令行运行PHP