云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

网站服务器_织梦数据库连接_免费领

小七 141 0

移动应用与Jenkins的持续集成:升级构建、QA过程和Beta发行

在本系列之前的博客中,我们研究了如何在云端使用Jenkins来实现移动应用程序开发的持续集成,包括iOS和Android平台。在本期文章中,我想看一个"完整生命周期"CI的示例,来讨论我尚未涉及的几个重要领域然而:怎么做使用Jenkins实施移动应用开发QA的有效流程;在这种情况下,我想介绍升级版本的概念,并说明如何使用这些机制来提供"门控"机制,以确保质量标准得到满足;稍微深入地了解将应用程序分发给现场的beta测试人员、收集反馈和维护对分发的控制所涉及的内容;在本例中,我将使用Zubhium将Android应用程序的beta版本推到selected测试员在本系列的早期博客中,您可以访问Cloudbees来查看我将要讨论的Jenkins配置。对于这个练习,我坚持我在前面的博客中使用的象棋场景,但是我们将使用一个更简单、更轻量级的基于Peter Osterlund的buckoochess引擎的象棋应用程序。源代码作为DroidFish项目的一部分可以在线获得:我在GitHub上复制了源代码。在本博客中,您可以忽略两个项目,buckoochess和buckoochessengine:我构建了布谷鸟棋.jar库并将其包含在buckoochessapk/libs-buckoochessapk是Android项目本身。这是我将在本博客中讨论的三个詹金斯工作,如果您想要更多配置的链接细节:布谷象棋机器人用android开发人员发布的多个android发行版baccoobhqa:buckokooqa为android开发的多版本软件开发包buckoobqa构建了多个android发行版,每次有人将更改推送到GitHub存储库时都会执行。我添加了一个自定义项_规则.xml文件到正常的Android版本:这是中的一个标准占位符生成.xml这允许您向构建中添加自定义的Ant目标。我添加了以下代码来设置android:版本代码值在AndroidManifest.xml根据Jenkins内部版本号,使用${环境内部版本号}. 以这种方式标记你的应用程序构建是一个很好的做法,这样你就可以很容易地确定特定应用程序版本所使用的Jenkins内部版本和源代码版本:尤其重要的是你将推出不同的版本进行现场测试,你需要对照构建系统检查任何反馈或崩溃数据。这是我根据这个有用的代码改编的AlienZombiePirate.com网站博客,有更多细节和附加示例:版本代码:${应用程序版本代码}匹配='${匹配版本代码.start}[^"]*${匹配结束}'替换="${匹配版本代码.start}${应用程序版本代码}${匹配结束}" />随着这个自动包含在Android ant构建中,我可以在构建项目时添加设置好的版本代码ant target,这将设置android:版本代码到是詹金斯号。实际的Android构建非常简单,并且遵循了我在前面的博客中介绍的步骤。另外请注意,作为构建后的一步,我已经告诉Jenkins归档将要构建的.apk归档:我们需要这个文件供后续构建作业使用。这个布谷鸟棋android项目为开发者提供了一个相对快速的检查程序,但这并不是故事的结尾。在幕后,Jenkins被配置为运行一系列其他构建作业,这些作业将进行更广泛的测试。在本例中,为了简单起见,我设置了一个多配置作业,它使用所有Android SDK(API级别10到16)重复构建过程,以检查向后兼容性。实际上,我希望有很多这样的工作,包括测试代码、使用模拟器和/或系留设备以及多个语言环境的多设备测试(正如在前面的博客中所讨论的),但是你明白了。这个屏幕截图显示了测试中的多个Android版本:您可以看到它是如何配置的这里:这份工作是一个下游项目,由成功构建原始的buckoochess android构建触发,这意味着无论何时构建完成都将自动运行而不会出错。就开发人员而言,所有这些都可以完全在后台进行:这些构建在云中运行,使用按需资源,完全自动化并且"熄灯"。但是,这些额外的构建作业和测试必须成功完成,才能将原始构建用作beta发行版的基础,而且我们可能还希望包括一个手动批准步骤。在Jenkins中,可以使用升级的Builds插件来实现这一点。下面是如何为布谷棋android版本配置的约伯:和你一样可以看出,要升级构建有两个条件(以及触发buckoochess android发布项目):矩阵化的多版本构建作业必须成功运行,并且需要指定审批人(在本例中为me)的手动批准。两个作业都成功运行后,我可以选择Buckoochess android版本,然后单击"Promotion Status"(升级状态),这将显示下游版本(Buckoochess android matrix)已通过,但该版本尚未升级,因为它仍在等待手动操作批准:在此我可以(事实上,作为一个发布经理)肯定想)从存储库获取构建的工件(Android.apk存档),安装到我的设备或模拟器上,检查包装、品牌和其他需要我签字的东西。然后我可以继续并通过单击按钮来批准构建,构建将被提升(它将获得一个金星!):此构建升级在这个小过程中自动触发最终的Jenkins作业(buckoochess android版本):这将从存储库获取.apk存档文件(请注意,这正是之前测试过的二进制文件),并将其上载到Zubhium服务。这是配置:现在我可以转到Zubhiumconsole并查看新的构建(在本例中是buckoochess-26V1.05,其中26是从上面描述的Jenkins内部版本号派生出来的),准备好推送到我的beta测试组。我可以用Zubhium做很多很酷的事情:我可以启用自动崩溃报告,收集用户反馈,还可以提供一个"终止开关",以便在更新版本可用时禁用beta版本,而且在任何情况下,我都可以直接跟踪任何和所有反馈到相关的Jenkins构建。如果你正在使用iOS应用程序,与Android不同,还有其他产品也有Jenkins插件,可以让你在iPhone/iPad上做类似的事情:查看TestFlight和Appaloosa for起动器。马克Prichard,产品管理的高级主管CloudBeesMark Prichard是CloudBees的javapaas宣传员。他在BEA Systems和Oracle工作了13年后来到CloudBees,在那里他是WebLogic平台的产品经理。马克毕业于剑桥圣约翰学院和剑桥大学计算机实验室,为加州洛斯阿尔托斯的CloudBees工作。通过他的博客cloud,Bees和Blogs关注Mark。