基于Jenkins的WPS for iOS的自动构建服务器的设计
2017-11-30穆荣刘欣王晓路
穆荣,刘欣,王晓路
(西安科技大学信息网络中心,陕西西安710054)
基于Jenkins的WPS for iOS的自动构建服务器的设计
穆荣,刘欣,王晓路
(西安科技大学信息网络中心,陕西西安710054)
通过了解持续集成的研究现状,分析了构建WPS所存在的问题,设计了基于Jenkins服务器自动构建iOS测试包的系统,驱动Xcode自动更改项目配置文件参数,实现了定时构建、一键构建、定制化构建和邮件通知等功能,消除了人工配置Xcode进行构建的烦琐性,缩短了构建时间,减轻了工作的压力。该服务器能够让多步操作变成一键操作,还可以定时自动构建,最后群发实时邮件通知构建结果,使工作效率得到了提升。
持续集成;Jenkins;Xcode;自动构建
众所周知,软件产品开发的时机和速度决定了产品的受欢迎程度,更有甚者,刚刚研发的产品一上市就有可能被淘汰。因此,这使得开发软件产品的复杂程度提升不少。为了缩减开发时间,除了在技术上要不断提升,且需要进一步充实开发团队。软件研发必然要面临如何在保证整个团队协同、高效工作的同时,确保软件产品的质量的问题。持续集成就是在这样的大环境下不断发展起来的,且持续集成可以很好地解决上述问题。
持续集成主要就是要求研发团队实时集成开发人员的代码及需求,需要大量进行构建工作。传统的构建打包方式非常烦琐,每次打包都需要针对不同的版本修改一些内容,加之系统认证需要的签名和证书,因此,为了节省人力和物力,每次集成研发人员在工作之后需要通过自动化构建来完成打包工作,这个过程主要解决人工构建的烦琐性,节省因构建浪费的时间,简化开发以及测试所需求的多种定制化构建。用Jenkins服务器作为平台构建测试包,能够让多步操作变成一键操作,还可以定时自动构建,群发实时邮件通知,提高工作效率。自动构建服务器中的每一个环节都是根据配置的信息和脚本代码自动运行的,通过使用该服务器可以达到缩短构建时间以及降低测试人员工作量的目的。
1 构建WPS所存在问题
基于Jenkins平台所构建的WPS for iOS测试包,可以用来解决存在的主要问题有:①WPS项目版本多,有中文版、国际版、企业版和日文版等众多版本。每个版本内部都涉及大量的不同参数变更,已经无法借助Xcode来维护,必须借助脚本来修改这些参数,防止人为修改出现众多纰漏;②WPS项目配置文件多,整个WPS项目共包含几百个配置文件,每个配置文件都需要修改签名、证书和Version等信息,这么大的工作量也是WPS项目面临的一个问题;③WPS项目打包批次多,不同的测试工作需要不同的测试包,且日常工作中还有很多分支项目,需要构建每个项目分支的测试包,所以,频繁地构建多版本的WPS测试包也是该项目面临的问题之一。综上所述,传统的手工构建已经远远不能满足WPS项目的需求,需要自动构建测试包来解决以上问题。
2 系统设计
通过Jenkins可以将手动Xcode构建的操作转化为自动构建,并用脚本代码来实现修改配置文件,以此来构建不同需求的ipa包,核心的设计如下:①从SVN代码库中下载产品代码,通过Jenkins服务器来配置WPS项目SVN源代码库的地址,最后输入账户和密码即可成功下载代码。②根据需求通过脚本修改代码中对应的配置文件,这个过程是系统的核心,也是技术要求最高的部分,需要通过代码详细配置几百份项目文件,成功驱动Xcode自动构建。③构建app测试包,通过Xcode完成项目文件配置,然后Xcode build负责将工程源文件编译成.app的测试包;④将APP包压缩为ipa包后从本地移到测试服务器上,使用Xcode build工具将代码编译后,将.app格式转换为.ipa格式的测试包。此时,可以通过Xcode自带的命令Xcrun语句就可以将app包压缩为ipa测试包,即Xcrun-sdk iphoneos Packageapplication-v $appfolder/Build/Products/${BUILD_CONFIG}-iphoneos/ $BUILD_ScHEME.app-o$WORKSPAcE/build/$BUILD_ ScHEME$SVN_REVISION$BUILD_MARK.ipa。上述-v后面是app文件及所在路径,-o后面则是存放的ipa文件名及预存放的位置。⑤发送邮件至全体工作人员,借助安装的邮件插件,通过配置接收和发送人员邮箱地址信息以及STMP服务器,编写固定的邮件格式的代码发送至全体工作人员。
3 服务器功能
基于Jenkins的WPS for iOS的自动构建服务器,以Jenkins服务器为平台,主要通过调用Shell脚本和OC程序驱动Xcode自动修改项目配置文件的众多信息,最后自动构建服务器。该服务器提供的主要功能包括WPS for iOS多种测试安装包的定制化构建、一键构建、定时构建以及邮件通知,具体内容如下。
3.1 定制化构建
定制化构建就是根据具体的测试需求打出相应的测试包。WPS项目大致包含中文版测试包、英文版测试包、中文高版本测试包以及带有Today特性的测试包等。每一种测试包都有自己的特点,所以,打不同版本的测试包就需要构建不同的工程,通过修改各自对应的配置参数以及脚本代码,来实现定制化构建。
3.2 一键构建
一键构建主要是指构建时只需要点击已建工程后的执行构建按钮,就可以自动构建,整个过程通过工程中的配置参数和脚本自动执行,无需手动操作。执行一键构建之后,在服务器主页面会显示相应的工程执行情况,工程执行完之后,会有明显的图标显示是否执行成功。除此之外,带有显示天气状况的图标表示构建的稳定程度,分数越高则构建越稳定。稳定程度从高到低依次为晴天(80+)、多云(60~79)、阴天(40~59)、阴雨(20~39)和闪电(0~19),分数低于80表示构建不稳定。
3.3 定时构建
定时构建是指按照预先设定的时间自动进行构建,这个功能实现起来较为方便,只需要在构建触发器模块选择Poll SCM选项,并在其中输入定时的命令即可。这个功能的优点是可以利用晚上和周末空闲时间进行构建工作,这样不仅提高了工作人员上班时的工作效率,还可以设定任意时间构建,防止测试人员因工作忙而忘记构建工作。定时构建只需要在相应的插件中写入具体执行构建时间的语句,就可以做到定时构建。
3.4 邮件通知
邮件是目前非常重要的沟通交流工具之一,所有与工作相关的信息都可以通过邮件的形式通知对方。在安装了邮件插件之后,我们可以通过配置接收和发送邮件人员的邮箱地址等信息,在构建完成后自动将邮件发送到个人邮箱中,使人们的工作联系更加紧密。
4 结束语
WPS是一款非常成熟的软件,目前很多国家的人都在使用这款办公软件,因此WPS推出了众多版本。使用Jenkins服务器部署自动构建,解决了人工配置Xcode进行构建的复杂性问题,缩短了构建时间,减轻了工作的压力。该服务器能够让多步操作变成一键操作,还可以定时自动构建,群发实时邮件通知构建结果,使工作效率得到很大的提升。
[1]段清蛇,李筠.基于Jenkins的持续集成测试环境插件开发[J].信息技术,2013(10).
[2]林新党,穆加艳.基于Jenkins的持续集成系统研究[J].雷达与对抗,2014(01).
[3]朱红,仇润鹤.基于Jenkins的移动通信业务自动化测试平台的设计与测试[J].科技与创新,2016(07).
[4]赵杰昌,张良宇.基于Jenkins构建持续集成系统[J].电脑编程技巧与维护,2014(09).
[5]周莹,欧中红,李俊.基于Jenkins的持续集成自动部署研究[J].计算机与数字工程,2016(02).
〔编辑:张思楠〕
TP311.52
A
10.15913/j.cnki.kjycx.2017.18.117
2095-6835(2017)18-0117-02
穆荣(1979—),女,陕西人,工程师,硕士研究生,主要从事网络建设、网络管理、服务器管理、教育信息化项目建设等工作。