(2.2.11)Android全新CI平台——Jenkins

本文介绍了一个新的CI平台的设计与实现,旨在解决现有打包平台存在的问题,包括自动化构建、测试案例执行及构建状态通知等功能。该平台支持Gradle命令,提供简单易用的操作界面,并通过Jenkins实现了自动化构建流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公司其实有现有的打包平台,然而该平台承载的工作量很少,例如并未承担自动化定时构建、执行gradle命令、自动化运行测试用例等功能。

并且在构建项目方面时间较慢,且在失败状态下不能及时通知对应人员

因此从其实际运用方面,它只是一个远端打包平台,而非一个CI平台


一、全新CI平台预期承载功能

  • 自动化定时构建项目

  • 手动构建与定时构建的兼容

  • 操作简单、易于拓展

  • 界面清晰易读

  • 支持gradle命令,与android开发环境完美对接


  • 【之于全公司成员】

    •  以自动化方式将最新的代码及时打包(尽管是debug版本的)供公司内部人员及时的查看工作进度

    •  权限校验机制,不同人的具有不同的查看和打包等权限 #测试和UI再也不用找研发打包啦!#


  • 【之于开发团队】

    •  定制定时或周期性任务,自动化构建

    •  以自动化方式及时反馈构建状态

    •  以自动化方式告知开发者构建失败的信息提示以方便尽快修正


  • 【之于管理者】

    •  以自动化的方式将构建完成的包推送发第三方平台上

    •  丰富的参数化构建过程,可以自由设定构建过程中的开发版本、渠道号、应用版本等,灵活构建应用

 

  • 【之于测试】

    •  以自动化的方式进行测试案例的运行,可以在每晚自动化进行测试案例的执行,以及时反馈整个应用的情况 


  • 支持Python、Shell拓展


二、什么是CI

没有CI的项目开发是在耍流氓。CI在Agile中是一项最基础的设施,它通过自动化来提供有效的反馈机制以及高效的部署,大大降低代了代码集成和项目交付的风险


CI (Continous Integration),持续集成。


Martin FLower 这样定义持续集成:持续集成是一种软件开发实践,即团队开发成员经常集成他们的工作,通常每个成员每天至少集成一次,这就意味着每天可能会发生多次集成


在现在的软件开发项目中,几乎没有项目是只有一个人在开发的。超过一个人就形成了团队,每个人同时并行开发不同模块的功能,这就涉及到代码的集成,所以代码集成是几乎所有开发团队都要面临的问题(一个人的开发项目不在本文范畴中)


每次集成都通过自动化的构建(编译,自动化测试,部署)来验证正确性,从而尽快地发现集成错误。大多数团队发现这个过程可以大大减少集成的问题,让团队能够更快的开发内聚的软件。


我们以图形的方式给出一个简单的使用场景


三、Jenkins

jenkins是一个可扩展的持续集成引擎


jenkins主要用于

  • 持续、自动的构建/测试软件项目

  • 监控一些定时执行的任务

Jenkins 特点:

  • Jenkins一切配置都可以在 web 界面上完成。有些配置如 MAVEN_HOME 和 Email,只需要配置一次,所有的项目就都能用。当然也可以通过修改 XML 进行配置。

  • 支持 Maven 的模块 (Module),Jenkins 对 Maven 做了优化,因此它能自动识别 Module,每个 Module 可以配置成一个 job。相当灵活。

  • 测试报告聚合,所有模块的测试报告都被聚合在一起,结果一目了然,使用其他 CI,这几乎是件不可能完成的任务。

  • 构件指纹(artifact fingerprint),每次 build 的结果构件都被很好的自动管理,无需任何配置就可以方便的浏览下载


四、引入说明


4.1 系统环境


  • Linux PC

  • Java +Gradle环境 +Android SDK

  • Tomcat 7+

  • Jenkins(最好是war文件)

  • 配置好tomcat,能启动访问,将Jenkins放到Tomcat的WebAPP下,可以通过本地访问到jenkins


4.2 Jenkins配置

4.2.1 相关插件安装

在Jenkins首页-- 系统管理 -- 插件管理 ,搜索相关插件并安装

  • - Gradle Plugin

  • - Email Extension Plugin

  • - description setter plugin

  • - build-name-setter

  • - user build vars plugin

  • - Post-Build Script Plug-in

  • - Branch API Plugin

  • - SSH plugin

  • - Scriptler

  • - Dynamic Parameter Plug-in

  • - Git Parameter Plug-In


4.2.2 环境变量

在Jenkins首页-- 系统管理 -- 系统管理:

配置JDK、Android SDK、Git、Gradle这些环境

4.2.3 新建一个入门级Job

对于Jenkins,每一个任务都是job,所以我们需要把自己的job映射到jenkins上


我们给出一个简单的示例,每天晚上11点自动构建一次安装包,并将失败信息通知给对应的svn提交者,相关配置如下:


 - svn://200.200.107.201/moa/moa/moa1.1/Trunk/android/pocket_pro/app/src/main

   Credentials 账户密码

 - 构建触发器

   Build periodically  H 23 * * * 

   Poll SCM H/10 * * * *

 - 构建

    Invoke Gradle Script---Invoke Gradle ----  Gradle Version  -----gradle2.2

    Tasks  clean assembleDevDebug

 - 构建后操作

   Archieve the artifacts

   **/*.apk

   Editable Email Notification


4.2.4 示例样式



五、结果

  目前已初步实现基本的自动化构建过程,进一步优化和拓展有待实际运用中的结合。


  更灵活定制化的自动化构建平台,作为基础性的底层设施,支持研发过程中的研发、测试、构建等诸多环节

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值