美文网首页程序员Android知识
Jenkins + Gradle 持续自动化构建 Android

Jenkins + Gradle 持续自动化构建 Android

作者: FrankFan | 来源:发表于2016-12-04 00:13 被阅读246次

    最基础的Jenkins 打包 Android

    本文将会写 最基础的 jenkins 打包 Android 项目的 构建步骤。之后文章会写如何打测试环境和正式环境的包,如何自动打渠道包,和如何分发 安装包。


    本文采用解压缩的方式来部署环境,所有的文件比如 jetty 、jenkins 都在当前目录,可以很方便的部署、移植和删除。

    1. 安装 Jetty

    Jetty 是一个 Servlet 引擎。相比 tomcat 结构更加简单,配置起来也更加容易快速
    可以到 Jetty官网 了解和下载。

    tar -xvf jetty-distribution-9.3.14.v20161028.tar.gzip #解压
    

    解压后目录为

    ➜  jetty pwd
    /home/username/jetty
    ➜  jetty ls   #下载后的 jenkins.war 要放到 webapps 目录下
    bin        etc  license-eplv10-aslv20.html  modules      README.TXT  start.ini  VERSION.txt
    demo-base  lib  logs                        notice.html  resources   start.jar  webapps
    
    ➜  jetty java -jar ./start.jar    #启动 jetty,启动后可以打开 127.0.0.1:8080  检查是否启动成功
    

    2. 安装 jenkins

    Jenkins官网 下载 最新 war文件。将 war 文件放到 Jetty 的 webapps 目录下。
    修改 jetty.xml 添加 JENKINS_HOME 为想安装的目录。

     vim /home/username/jetty/etc/jetty.xml 
    

    添加下面配置

    <Call class="java.lang.System" name="setProperty">
       <Arg>JENKINS_HOME</Arg>
       <Arg>/home/username/jettyjenkins</Arg>
    </Call>
    

    然后启动 jetty

    ➜  jetty java -jar ./start.jar 
    

    打开浏览器访问 jenkins 时如果出现 HTTP ERROR 503 错误,如下。

    HTTP ERROR: 503
    Problem accessing /jenkins/. Reason:
       Service Unavailable
    ------------
    Powered by Jetty
    

    经查这是因为 Jetty 8.1.0之后对安全性有了一些要求,需要显示注明安全域(security realm)。需要在 webapps 目录下添加 jenkins.xml 文件 并添加如下配置

    <Configure class="org.eclipse.jetty.webapp.WebAppContext">
            <Set name="contextPath">/jenkins</Set>
            <Set name="war"><SystemProperty name="jetty.home" default="."/>/webapps/jenkins.war</Set>
            <Get name="securityHandler">
                    <Set name="loginService">
                            <New class="org.eclipse.jetty.security.HashLoginService">
                                    <Set name="name">Jenkins Realm</Set>
                                    <Set name="config"><SystemProperty name="jetty.home" default="."/>/etc/realm.properties</Set>
                            </New>
                    </Set>
            </Get>
    </Configure>
    

    之后启动打开 127.0.0.1:8080/jenkins 即可看到 jenkins 界面。

    3. 配置 jenkins

    • 安装插件 git plugin ssh

    • 配置 Android_HOME
      在 [系统管理]->[系统设置] 页面-> [全局属性]部分-> 勾选 [Environment variables] 添加键值对
      键 Android_HOME
      值 /android/sdk/path

    4 新建Android项目

    点击[新建]->选择[构建一个自由风格的软件项目],进入项目配置页面。

    5 配置Git

    源码管理选择 [Git],[Repository URL] 输入项目的 git 地址, [Credentials] 我选择的默认的 “none” ,直接用的当前账号的ssh 目录 /home/username/.ssh 下 id_rsa。

    6 配置 Gradle 编译代码

    [构建] ->[增加构建步骤]->[Invoke Gradle script]-[task] 输入 “ clean build ”
    然后 点击 [保存]
    这样最简单可打包的项目配置就结束了。

    7 项目构建

    回到项目主页 -> 点击 [立即构建],可以看到 左下栏 [Build History] 窗口有项目进度条。点开进度条可以看到 此次构建的基本信息,点击 [Console Output] 可以看到构建的控制台输出。项目构建完成后可以看到 “Build Success”。进入 项目主页的 [工作空间] 可以看到项目结构,找到 output 即可看到构建生成的 apk 文件等。

    8 未完待续

    之后会讲如何打多渠道包,如何打不同环境的包,如何上传安装包到蒲公英进行分发。
    Jenkins + Gradle 持续自动化构建 Android(2)

    参考文章
    http://smilejay.com/2013/06/deploy-jenkins-in-jetty/
    http://www.pgyer.com/doc/view/jenkins

    相关文章

      网友评论

        本文标题:Jenkins + Gradle 持续自动化构建 Android

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