美文网首页程序员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