Jenkins搭建Android自动构建

简介

本文主要介绍如何通过Jenkins+SVN+Gradle搭建Android自动打包过程。

原先提交测试流程是:开发打Apk包,然后再发送给测试人员测试,在快速迭代的过程中,开发修改完bug后,又要重复打包给测试,非常繁琐。所以搭建自动构建势在必行,需要把开发从这个流程中抽离出来,让测试自己去打包测试了,只要一个按钮即可自动构建。

Jenkins 是一款流行的开源持续集成(Continuous Integration)工具,广泛用于项目开发,具有自动化构建、测试和部署等功能。

image.png

安装Jenkins

  1. 官网下载:https://jenkins.io/
    直接下载安装包进行安装部署

    image.png

  2. 安装JDK
    Jenkins 自身采用 Java 开发,所以要必须安装 JDK(Java 8);

  3. 安装AndroidSDK
    官网(可翻墙选择):http://developer.android.com/sdk/index.html
    不可翻墙选择:http://www.androiddevtools.cn/
    不可翻墙选择:http://tools.android-studio.org/
    SDK Manager 下载各个版本的SDK

配置说明

登录

http://localhost:8080/
首次进入需要输入初始密码来解锁。
密码在安装目录下的:Jenkins\secrets\initialAdminPassword

image.png

进入 Jenkins 定制界面,让选择 Install suggested plugins,安装推荐插件即可,后面有需要可以再安装其他插件。

image.png

插件安装完后,设置第一个管理员账号,进入主界面


image.png

基础配置

1.Global Tool Configuration(全局工具配置)


image.png

JDK:别名=任意,JAVA_HOME=JDK目录
Gradle:别名=任意,GRADLE_HOME=Gradle下载目录\Gradle\gradle-2.xx
Gradle尽量配置多个,因为项目的gradle版本可能不一样,所以需要选择不同的Gradle版本进行编译

  1. 全局管理-系统配置
    全局属性 - 环境变量- 添加Android SDK路径


    image.png

创建项目

[新建任务]


image.png

General

源码管理

设置svn地址
点击Add,添加账号和密码


image.png

Local module directory(.)表示代码会CheckOut到Jenkins\workspace\NewTask目录下。

点击保存,回到项目界面,然后点击【立即构建】


image.png

Jenkins就会发起一个构建任务,这时候我们可以到Jenkins\workspace\NewTask目录下,看到代码checkout出来了。后面会进入构建打包配置。

构建触发器

进行自动构建触发,可以配置什么时候构建,目前先不配置。

构建环境

暂不配置。

构建

image.png

配置Gradle版本和任务(clean assembleRelease --stacktrace --debug)


image.png

点击保存,回到项目界面,然后点击【立即构建】,可以看到在app下有apk生成了。

构建后操作

1. 配置Archive the artifacts

把构建包进行存档,会显示在每次构建上面。
/build/outputs/apk/release.apk

image.png

image.png

点击保存,回到项目界面,然后点击【立即构建】,点击刚才的构建任务,可以在界面看到构建出来的apk.


image.png

Jenkins会保存每次构建任务,保存在jobs/xxx/builds下面


image.png

配置了【Archive the artifacts】,就会把相应的文件保存到archive目录里面。

2. 配置自动上传到fir.im(应用管理平台)

  1. 要先安装插件:http://blog.fir.im/jenkins/
  2. 获取fir.im Token

[未完待续]

参考

使用Jenkins进行持续集成
https://www.liaoxuefeng.com/article/001463233913442cdb2d1bd1b1b42e3b0b29eb1ba736c5e000

碰到问题

  1. 提示“Adding IP addresses for network interface WAN Miniport”
    手动到项目下,执行命令:clean assembleRelease --stacktrace --debug
    此时,会有一个java访问防火墙的弹窗,点击允许。

2.You have not accepted the license agreements of the following SDK components:[Android SDK Build-Tools 26].

image.png

下载SDK Build-Tools 26


image.png

在android-sdk\tools\bin目录下
执行命令:

sdkmanager --update
    • What went wrong:
      Failed to load native library 'native-platform.dll' for Windows 7 amd64.

全局搜索native-platform.dll,把单个native-platform.dll.lock的,重命名成native-platform.dll。


image.png
  1. Error: Some file crunching failed, see logs for details
    直接用命令:gradlew命令构建是可以成功的,但是用Jenkins就是不行。
    后来又看到说是build-cache路径过长的问题,查看下构建日志,发现cmd->gradlew命令构建build-cache为
    C:\Users\Administrator.android
    Jenkins下的build-cache路径是
    C:\Windows\System32\config\systemprofile.android
    通过Jenkins的配置来控制
    image.png

    参考:
    https://blog.csdn.net/msl0903/article/details/71077898
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容