• 对于注定会优秀的人来说,他所需要的,只是时间----博主
  • 手懒得,必受贫穷,手勤的,必得富足----《圣经》
  • 帮助别人,成就自己。愿君在本站能真正有所收获!
  • 如果你在本站中发现任何问题,欢迎留言指正!
  • 本站开启了防爆破关小黑屋机制,如果您是正常登录但被关进小黑屋,请联系站长解除!

<一>Jenkins实战应用–Jenkins介绍

Jenkins eryajf 7个月前 (03-24) 3759°C 已收录 9个评论
本文预计阅读时间 8 分钟

*系列汇总*

这是一个系列文章,大大小小到今天惊然发现竟然已经累计二十篇了,也就不得不做一个小汇总。回想当初写第一篇文章的时候,就已经决心事无巨细,一应认真的走下来,回头遮望,看着皇皇这么多文章,一股强烈的成就感就此油然而生,于是便有了这些汇总整理。在这个过程当中,好像也帮助过不少的人,这是让我尤其开心的事情,同时也结识了一些志同道合的朋友,再没有比这更让人觉得愉悦的事情啦!也希望以后写出更多类似的系列文章。

文章汇总地址如右:Jenkins 入门教程。

如果相中哪个,点击进去便是。希望正在读这段话的你能够在这个小系列中获得自信以及喜悦!

一,持续集成和 Jenkins 介绍

对于很多做嵌入式软件的朋友来说,可能从来都没有听说过持续集成这个词,也就无从接触过 Jenkins 这个工具软件。自去年转调部门后,除了解了设计模式外,还有幸接触到了 Jenkins。

那什么是持续集成?Jenkins 具体用来做什么,对软件开发有什么益处呢?总得来说,这两者主要是涉及一个软件质量的主题,特别是团队开发软件项目。下面就来介绍介绍下这两者。

一,持续集成的概念

持续集成,Continuous integration ,简称 CI。

随着软件开发复杂度的不断提高,团队开发成员间如何更好地协同工作以确保软件开发的质量已经慢慢成为开发过程中不可回避的问题。尤其是近些年来,敏捷(Agile) 在软件工程领域越来越红火,如何能再不断变化的需求中快速适应和保证软件的质量也显得尤其的重要。

持续集成正是针对这一类问题的一种软件开发实践。它倡导团队开发成员必须经常集成他们的工作,甚至每天都可能发生多次集成。而每次的集成都是通过自动化的构建来验证,包括自动编译、发布和测试,从而尽快地发现集成错误,让团队能够更快的开发内聚的软件。

以我经过的项目(假设为 A 项目)为例进行描述。

首先,解释下集成。我们所有项目的代码都是托管在 SVN 服务器上。每个项目都要有若干个单元测试,并有一个所谓集成测试。所谓集成测试就是把所有的单元测试跑一遍以及其它一些能自动完成的测试。只有在本地电脑上通过了集成测试的代码才能上传到 SVN 服务器上,保证上传的代码没有问题。所以,集成指集成测试。

再说持续。不言而喻,就是指长期的对项目代码进行集成测试。既然是长期,那肯定是自动执行的,否则,人工执行则没有保证,而且耗人力。对此,我们有一台服务器,它会定期的从 SVN 中检出代码,并编译,然后跑集成测试。每次集成测试结果都会记录在案。完成这方面工作的就是下面要介绍的 Jenkins 软件。当然,它的功能远不止这些。在我们的项目中,执行这个工作的周期是 1 天。也就是,服务器每 1 天都会准时地对 SVN 服务器上的最新代码自动进行一次集成测试。

 

二,持续集成的特点

它是一个自动化的周期性的集成测试过程,从检出代码、编译构建、运行测试、结果记录、测试统计等都是自动完成的,无需人工干预;

需要有专门的集成服务器来执行集成构建;

需要有代码托管工具支持;

三,持续集成的作用

保证团队开发人员提交代码的质量,减轻了软件发布时的压力;

持续集成中的任何一个环节都是自动完成的,无需太多的人工干预,有利于减少重复过程以节省时间、费用和工作量;

上面我们了解了持续集成的知识。既然有这么多的好处,那我们怎么样实现它呢?这就是接下来要介绍的名角:Jenkins 软件。

贰, Jenkins

一,Jenkins 介绍

Jenkins,原名 Hudson,2011 年改为现在的名字,它 是一个开源的实现持续集成的软件工具。官方网站:http://jenkins-ci.org/。

Jenkins 能实施监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。

目前持续集成(CI)已成为当前许多软件开发团队在整个软件开发生命周期内侧重于保证代码质量的常见做法。它是一种实践,旨在缓和和稳固软件的构建过程。并且能够帮助您的开发团队应对如下挑战:

软件构建自动化 :配置完成后,CI 系统会依照预先制定的时间表,或者针对某一特定事件,对目标软件进行构建。

构建可持续的自动化检查 :CI 系统能持续地获取新增或修改后签入的源代码,也就是说,当软件开发团队需要周期性的检查新增或修改后的代码时,CI 系统会不断确认这些新代码是否破坏了原有软件的成功构建。这减少了开发者们在检查彼此相互依存的代码中变化情况需要花费的时间和精力(说直接一点也是钱啊,呵呵)。

构建可持续的自动化测试 :构建检查的扩展部分,构建后执行预先制定的一套测试规则,完成后触发通知(Email,RSS 等等)给相关的当事人。

生成后后续过程的自动化 :当自动化检查和测试成功完成,软件构建的周期中可能也需要一些额外的任务,诸如生成文档、打包软件、部署构件到一个运行环境或者软件仓库。这样,构件才能更迅速地提供给用户使用。

部署一个 CI 系统需要的最低要求是,一个可获取的源代码的仓库,一个包含构建脚本的项目。

 

二,Jenkins 特点

易安装:仅仅一个 java -jar jenkins.war,从官网下载该文件后,直接运行,无需额外的安装,更无需安装数据库;

易配置:提供友好的 GUI 配置界面;

变更支持:Jenkins 能从代码仓库(Subversion/CVS)中获取并产生代码更新列表并输出到编译输出信息中;

支持永久链接:用户是通过 web 来访问 Jenkins 的,而这些 web 页面的链接地址都是永久链接地址,因此,你可以在各种文档中直接使用该链接;

集成 E-Mail/RSS/IM:当完成一次集成时,可通过这些工具实时告诉你集成结果(据我所知,构建一次集成需要花费一定时间,有了这个功能,你就可以在等待结果过程中,干别的事情);

JUnit/TestNG 测试报告:也就是用以图表等形式提供详细的测试报表功能;

支持分布式构建:Jenkins 可以把集成构建等工作分发到多台计算机中完成;

文件指纹信息:Jenkins 会保存哪次集成构建产生了哪些 jars 文件,哪一次集成构建使用了哪个版本的 jars 文件等构建记录;

支持第三方插件:使得 Jenkins 变得越来越强大;

 

三,其它集成工具

其它比较著名的持续集成工具有:CruiseControl,TeamCity,Continuum 等。

 

四,嵌入式软件集成

据我了解,在嵌入式软件开发中,很少人有用到持续集成工具。个人觉得最主要的原因是:嵌入式软件与硬件联系比较紧密,很多时候难以满足持续集成的条件——构建自动化测试。

但我们还是可以有所作为。在设计应用软件时,把逻辑业务与硬件相关功能区分开来,对逻辑业务部分编写单元测试,然后做集成测试。

当然,对于小型的嵌入式应用软件就没必要做这个集成工作了。

本文根据网上一篇佳文整理而成。原文链接: http://velep.com/archives/867.html


二丫讲梵 , 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明<一>Jenkins 实战应用–Jenkins 介绍
赞赏
喜欢 (15)or
[如果想支持本站,可支付宝赞助]
分享 (0)
发表我的评论
取消评论
表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(9)个小伙伴在吐槽
  1. pengge
    :oops: 赞 嵌入试软件 式 对于你这样追求完美的男人而言应该是追求的 有一丢丢可爱的错别字 不过是不受影响滴呢
    pengge2018-05-16 14:33 回复 Windows 10 | Chrome 66.0.3359.139
    • 感谢支持,不过我看了三遍也没有看到嵌入试在哪个位置呢 :cool:
      eryajf2018-05-16 14:38 回复 Windows 7 | Firefox浏览器 60.0
  2. pengge
    四,嵌入式软件集成 个人觉得最主要的原因是:嵌入 试 软件与硬件联系
    pengge2018-05-17 10:18 回复 Windows 10 | Chrome 66.0.3359.139
    • 已经订正,感谢支持!
      eryajf2018-05-17 18:49 回复 Windows 10 | Chrome 66.0.3359.139
  3. 感觉楼上要表白的赶脚。
    dahl2018-05-17 15:33 回复 Windows 10 | Chrome 66.0.3359.139
    • 都是一堆大老爷们,别闹 :cool:
      eryajf2018-05-17 16:50 回复 Windows 7 | Firefox浏览器 60.0
      • 大大好,能否修改下触发复制粘贴的弹窗动作的条件? 看博客喜欢用鼠标选中看过的部分,然后每次一选,就弹窗... ... 强迫症好蓝瘦。 :sad:
        dahl2018-05-17 17:40 回复 Windows 10 | Chrome 66.0.3359.139
        • ok,已取消!
          eryajf2018-05-17 17:45 回复 Windows 7 | Firefox浏览器 60.0
  4. eryajf
    签到成功!签到时间:2018-07-29 12:22:11,每日打卡,生活更精彩哦~
    eryajf2018-07-29 12:22 回复 Windows 7 | Chrome 67.0.3396.99
×
订阅图标按钮