Jenkins + Gradle 持续自动化构建 Android(1)

最基础的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

    原文作者:FrankFan
    原文地址: https://www.jianshu.com/p/741f9de71400
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞