论文部分内容阅读
摘要:持续集成在现代软件开发中得到越来越多的重视,因为也得到了很多软件公司在其开发团队中的应用。本文结合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.
关键词:持续集成;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/
(3)建立镜像版本库
为了后续的使用方便,我们从官方服务器上下载一个镜像版本库到本地服务器,目录为/home/
$repo init -u git://android.git.kernel.org/platform/manifest.git --mirror
$repo sync -j8
(4) 建立中心版本库
在另一个目录如/home/
$repo init -u /home/
$ 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/
Location of Git repositories?? [git]: /home/
(2)身份验证方式。Gerrit支持多种身份验证方式,身份验证方法决定了如何登录Gerrit,可以使用OpenID、HTTP、LDAP等,为了测试我们采取最简单的development_become_any_account:
Authentication method [OPENID/?]: development_become_any_account
安装完成后配置后启动gerrit:
$/home/
在浏览器中打开页面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.