美文网首页android高级Android开发随笔Android-Gradle
Jenkin+Git+Gradle为Android项目搭建CI环

Jenkin+Git+Gradle为Android项目搭建CI环

作者: 码上新视界 | 来源:发表于2015-08-19 09:17 被阅读4974次

    前言

    在平时的项目开发中,我们需要将最新的代码及时打包(尽管是debug版本的)供公司内部人员及时的查看工作进度,这个怎么才能做到呢。

    我的上家公司是创业公司,总是用一些很前卫的技术:Android Studio、Gradle、Git、Material等。这些在去年的Google IO大会后,在我们的项目中,已经开始全面的使用(其实Android项目就我一个工程师)。当时就有同事提出了CI这个自动化集成环境来处理,后来果然搭了一个Jenkins的CI环境,每次只需要提交代码,CI会从GitLab上拉最新的代码,自动打包,同时推到我们内部的下载/发布页面上。而我们内部的员工在下载页面上下载最新的安转文件,用起来很爽啊。

    对于工程师来说,你就只管提交代码,不用关心怎么打包之类的。
    对于产品或者测试,我只需要从发布页面下载APK安装文件,不必每次都跑工程师那,安装个最新的包之类。
    这中间是CI帮我们处理了,怎么更新代码,怎么打包,怎么发版,他就是神器。

    Do U think so。

    就简单说下CI的一些作用吧:


    图1图1

    我每次提交一次代码(Git/SVN作为代码的版本控制)到develop分支上,CI检测到有版本需要更新,就会在一定的时间内打出一个到指定的目录下,而这个目录就是我们可以访问下载的页面。

    这周我也通过Jenkins搭建了一个简单的CI(Continuous Integration)环境,以供大家使用。

    准备

    1. PC(mac or Linux机器)

    2. Java +Gradle环境 +Android SDK

    3. Tomcat 7+

    4. Jenkins(最好是war文件)

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

    全局配置

    下载Git和Gradle的相关插件

    在Jenkins首页(图1)-- 系统管理 -- 插件管理 ,搜索Gitlab和Gradle的插件。

    全局配置

    在Jenkins首页(图1)-- 系统管理 -- 系统管理:
    配置JDK、Android SDK、Git、Gradle这些环境

    配置Android SDK环境

    配置JDK环境

    配置Git环境

    配置Gradle环境

    配置Job

    新建一个Job

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

    在Jenkins首页(图1)--左侧的新建

    imageimage

    再回到jenjins的首页,就会发现多了一个项目。

    配置一个Job

    根据Jenkins首页(图1)-- 项目 -- 配置进入到配置页面。

    1.填写Git的相关信息和分支。


    imageimage

    git的话,我现在用的是https协议的,用ssh协议的话,记得填写key以private key.

    2.SCM配置


    imageimage

    scm就会每5分钟更新一次,若是远程仓库的指定分支上更新

    imageimage

    这样配置完成了。

    构建

    回到你的项目的首页,点击左侧的立即构建。


    imageimage

    若是失败了点击本次的构建历史。

    imageimage imageimage

    发版到指定服务器

    在构建完成后,我们不仅仅可以用gradle的命令,还可以使用shell、python等,这样我们就可以模拟出一个发版的Server了,这个就不再啰嗦了。

    只要更新在5分钟内就可以在后台看见jenkins在非常卖力的工作给我们打包。

    这个就是构建历史,还可以看见每次的状态啊


    发布页面,这个页面下,公司内部人员就可先尝鲜了。


    相关文章

      网友评论

      本文标题:Jenkin+Git+Gradle为Android项目搭建CI环

      本文链接:https://www.haomeiwen.com/subject/gecgqttx.html