基于Gerrit和Jenkins的Android持续集成

来源 :科学与财富 | 被引量 : 0次 | 上传用户:xsxiaomo
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:持续集成在现代软件开发中得到越来越多的重视,因为也得到了很多软件公司在其开发团队中的应用。本文结合Android项目,介绍了基于Gerrit+Jenkins的持续集成系统方案,详细描述了该系统搭建的过程和步骤。
  关键词:持续集成;Android;Gerrit;Jenkins;
  1 引言
  近年来,Android操作系统在移动设备市场的占有率不断扩大,越来越多的公司开始进行Android应用程序的开发。由于现代软件对开发的快速迭代以及快速响应需求的特点,在此过程中进行质量保证尤为重要,因此很多公司也引入了适合Android产品的持续集成系统。本文以Git为版本管理工具,结合Gerrit代码审核软件及Jenkins持续集成工具,介绍了Android平台持续集成系统的设计,并详细描叙述了该系统搭建的过程。
  2 建立版本库
  持续集成需要一个统一的中心代码版本库,团队开发成员将从该版本库中更新代码到本地机器,并向其提交本地修改。我们采用Git为版本管理工具,在Ubuntu操作系统上简单搭建一个测试用的git服务器并建立一个版本库。
  (1)安装git dameon
  安裝git-daemon的前提是已经安装了git,然后直接sudo安装即可:
  $ sudo apt-get install git-daemon-run
  (2)设置仓库目录
  安装完成后,修改配置文件/etc/sv/git-daemon/run,设置--base-pat字段为自己放置git项目的目录,如/home//git:
  (3)建立镜像版本库
  为了后续的使用方便,我们从官方服务器上下载一个镜像版本库到本地服务器,目录为/home//git/android-mirror。此处我们使用repo命令,它是google用Python脚本写的调用git的一个脚本,可以方便地管理Android项目的git仓库:
  $repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
  $repo sync -j8
  (4) 建立中心版本库
  在另一个目录如/home//git/main-repository建立自己软件团队的中心版本库:
  $repo init -u /home//git/android-mirror/platform/manifest.git --mirror
  $ repo sync -j8
  修改完对应权限配置后,便完成了中心版本库的建立。外部可访问的路径为:git://your-server-ip/android-mirror/platform/manifest.git
  3 Gerrit代码审查
  在上述过程建立好版本库后,开发人员虽可从该路径获取代码,但我们需要控制权限不让其能够直接上传,而是需要通过一定的代码review及自动化测试验证后才能提交到中心版本库。Gerrit便是为此而生的,它是Google开发的一种开源的代码审查软件,利用网页浏览器,同一个团队的软件程序员,可以相互审阅彼此修改后的程序代码,决定是否能够提交,退回或者继续修改。并且可以在Jenkins上设置Gerrit Event作为触发器来进行构建,从而实现持续集成的目的。
  从google官网下载gerrit安装包进行安装,并根据提示进行相应配置,本文中使用的版本为gerrit-2.10.1.war。
  $java -jar gerrit-2.10.1.war init -d gerrit_site
  安装过程中注意需要配置如下:
  (1) Git仓库路径。此处设置为之前建立好的Git Server目录/home//git/main-repository,这样Gerrit启动后将自动导入Android Repo下所有git项目:
  Location of Git repositories?? [git]: /home//git/main-repository
  (2)身份验证方式。Gerrit支持多种身份验证方式,身份验证方法决定了如何登录Gerrit,可以使用OpenID、HTTP、LDAP等,为了测试我们采取最简单的development_become_any_account:
  Authentication method [OPENID/?]: development_become_any_account
  安装完成后配置后启动gerrit:
  $/home//gerrit_site/bin/gerrit.sh start
  在浏览器中打开页面http://your-server-ip:8080,注册用户(第一个注册默认为管理员),并设置ssh连接的公钥,返回重新登录后即可登录gerrit系统。
  4 基于Jenkins搭建持续集成系统
  搭建完Git Server上的版本库并配置好Gerrit,我们便完成了基本的准备工作,下面我们介绍如何利用Jenkins配合Gerrit来进行自动化构建。
  (1)运行Jenkins
  官网下载最新jenkins.war到本地服务器,指定端口号8082运行,然后便可在浏览器中看到启动界面:
  $java -jar jenkins.war --httpPort=8082   (2)安装插件
  Jenkins要和Gerrit协作工作需要插件对应插件支持。在系统管理->管理插件中点击“立即获取”,待更新完成后进入“可选插件”,勾选“Gerrit Plugin”和“Git Plugin”,点击“直接安装”后系统将自动完成安装。
  (3) 在Gerrit上配置Jenkins用户
  用管理员账户登录Gerrit,新建用户组Jenkins,将刚刚运行jenkins的用户加入该用户组,另外还需将该用户加到Non-Interactive Users用户组(接受Stream Events)。然后编辑All-Projects的Access,为Jenkins用户组添加Label Verified权限。这样配置完后jenkins运行用户便可在Gerrit对改动集提交验证结果了。
  (4) 新建Gerrit Server
  进入Jenkins系统管理->Gerrit Trigger-> Add New Server,根据提示添加Gerrit Server并配置信息。
  (5) 新建Job
  点击主界面的“新建”,来到新建job界面,输入job名,选择“构建一个自由 风格的软件项目”,点击“OK”来到job配置界面。
  5 结语
  本文主要基于Android项目,介绍了如何结合Gerrit和Jenkins搭建一套持续集成系统,通过插件支持及相应配置将两套系统协同工作,并完成提交自动触发构建。当然文中只是简要介绍了Jenkins的工作方式,其实它还有更多强大的功能,如可设置不同的触发器或轮训触发,也可设置邮件提醒,更可以根据项目实际需求结合其他工作完成自动构建或自动发布。长期的工作实践表明,在团队软件开发过程中使用持续集成系统,通过持续不断的自动化构建可提前发现项目中存在的问题,避免了代码缺陷的集中爆发,可以有效提高开发效率和软件整体质量,同时也给项目管理及最终软件发布提供了很好的保证。
  参考文献
  [1]黄俊伟,贾云伟.Android项目持续集成系统设计与实现[J].电脑编程技巧与维护,2014, 23:46-48.
  [2]徐仕成.持续集成在现代软件开发中的应用与研究[D].长沙:中南大学,2007.
  [3]王焱,张征.基于持续集成的Android自动化测试[J].计算机系统应用,2015,24(5):261-265.
  [4]杨娇娇. 基于Jenkins平台的软件持续集成自动测试方案设计与实际[D].南京:东南大学,2014.
  [5] 林新党,穆加艳.基于Jenkins的持续集成系统研究[J].雷达与对抗,2014,34(1):58-61.
其他文献
摘要:毋庸置疑,机电是整个建筑机能正常运行的基本前提,尤其是机电在建筑中应用越发普遍的今天,但是,机电系统由于其本身的复杂性,安装步骤要求极为严苛,文章针对机电安装技术在建筑中的设计运用,指导机电安装,以期促进机电与建筑的完美结合,促进机电安装技术的进步。  关键字:机电安装;施工技术;建筑施工; 实践应用  从机电安装技术的内容和其对于建筑的重要性以及机电安装的特点出发,阐述机电安装施工研究的必
期刊
摘要:现今农业的发展,面临着复杂的竞争环境,传统的复杂、静态的农产品供应链的结构,已经不能满足差异的顾客与市场竞争的需求。农产品电子商务平台,是连接网上、网下两个市场的重要枢纽。供应链作为价值链的集合体,可以实现资源的整合优化,可以实现农产品用户、消费终端的直接对接,因此可以形成新的价值、利润空间。本文就对农产品供应链的优化问题,进行一定的探讨,期望可以为实现农产品的价值效益的剧增,提供一定的理论
期刊
摘要:为了能够在智能化识别动作的过程中提高识别的效率和准确率,避免在以整体特征为基础研究受到衣着等因素的影响,本文根据Kinect的骨骼跟踪功能,建立人体关节点融合的简化骨架模型。提出关于角度和重心的判别模型,借助matlab达到自动识别功能。  关键词:自动识别,层次分析法,Kinect,角度,骨架模型  1 引言  人体行为动作及姿态的识别目前仍处于初级阶段。人体结构的复杂性以及运动的复杂性,
期刊
摘要:在研究机械变速器试验台总体结构基础上,阐述了基于LabVIEW软件开发的测控系统;通过描述系统软件需求分析,介绍了系统的开发过程,并对试验结果进行处理分析。该测控系统为机械式变速器性能检测和评价提供了技术平台。  关键词:LabVIEW,RR,机械变速器,数据采集  1 引言  变速器是汽车传动系统重要组成之一,其性能直接影响汽车的可靠性、燃油经济性和动力性。变速器试验台是检测变速器性能的重
期刊
摘要:为了适应经济转型和创新驱动发展战略,中国的高等教育正在加快结构性的改革和创新的步伐,正在推动一批地方本科高校向应用技术型大学转学,使我们应用技术型大学围绕国家信息化战略和互联网+新兴产业发展需求,实现教育战略符合国家战略的发展要求。为响应教育部对工程技术人才培养的号召,河北科技学院积极创新人才培养模式、提高专业建设水平、提升教师科研及技术服务能力,实现专业的优化、更新及核心竞争力的重构。  
期刊
摘要:对科技档案进行现代化的管理是具有非常突出的意义的,文章主要对当前国企在档案管理方面存在的现状,提出进行管理创新方面的建议。本文认为,对科技档案进行管理创新首先要改变相关人员的思想观念,还要设立专门的监管单位,通过加强对国企科技档案人才队伍的建设来改善国企科技档案工作的创新。  关键字:科技档案;国企;管理创新  进入信息化社会之后,人们已经认识到科学技术作为第一生产力的地位。国企在提高生产力
期刊
摘要:煤炭业是我国的重要经济产业,并且我国的大部分能源消耗都来自于煤炭。多年以来我国煤炭产量都居世界前列。但由于煤炭的频繁开采,煤矿安全问题日益加剧,特大事故常有发生。矿产业安全问题的一个很重要的关键是怎样能够遭遇危险发生之前识别出潜在的风险。于是我们需要懂得识别及使用预警安全风险。  关键词:煤矿;安全生产;风险预警  0 引言  煤炭是我国乃至世界的极其重要的资源,而它在国家经济中也起着很大的
期刊
摘要:现今,伴随着社会信息化程度的逐年提升,计算机的作用日益凸显。计算机软件管理,在计算机应用中占据着重要位置,有效的软件工程管理信息,可以影响到产品质量、生产效率、开发进度、预算使用等诸多方面。因此本文就从计算机软件工程管理概述、计算机软件项目管理存在的问题、计算机软件工程管理的创新与完善,对计算机软件工程管理的有关问题进行一定的探讨,期望可以为计算机软件的开发提供一定的理论借鉴。  关键词:计
期刊
摘要:随着社会的不断发展,我国的经济水平越来越高,电力系统的发展也十分快速,达到了突飞猛进的程度。现在人们生产生活的方方面面都离不开电,电对一个社会的发展来说有着十分重要的作用。如何提高火电发电厂的运行效率,成为了当今很多人关注的话题。  关键词:火电发电厂;锅炉检修  电能是一个国家发展的重要基础和保障,只有提高电能系统的稳定性和安全性,加快电能系统的发展,才能够为我国经济水平的提高做出贡献,促
期刊
摘要:半连续开采工艺因其节省成本,开采效率高等特点,已经被广泛应用于露天煤矿的开采技术和工艺中。本文笔者以猫儿沟煤矿为例,首先阐述了半连续开采工艺的特点,并结合猫儿沟煤矿的实际情况,分析了该项目半连续开采背景、开采工艺的条件及开采应用的特点。具有一定的实践参考价值。  关键词:半连续;开采工艺;猫儿沟;应用  1 煤矿半连续开采工艺的特点  首先,半连续工艺一种介于连续开采与间断开采之间的一种工艺
期刊