signed

QiShunwang

“诚信为本、客户至上”

Linux下Jenkins Android自动化打包

2021/4/26 17:33:29   来源:

最近手上没有项目需要做,为了让自己不那么闲,捡起了公司很久以前的Jenkins,准备做一个Android自动化打包,也可以减少开发打包次数,让需要包的人自己去打包。公司Jenkins已经搭建在Linux服务器上,如果需要自己搭建,请自行搜索如何搭建。本文只讲述Android自动化需要的环境以及配置。

全局配置

对于基于java的Android来说,JDK环境是必须的,同时我们也需要Gradle环境来构建Android项目。

这些需要在 Manage Jenkins(系统管理)–> Global Tool Configuration(全局工具配置) 进行配置

 在JDK和Git配置地方填上服务器或者本地路径,如果没有安装这些,需要首先安装并配上环境变量。如果Jenkins安装在Docker中(没错就是我们,不推荐),对应的路径需要填上映射的路径。Gradle可以让他自己下载,只需要选择你需要的版本。

Android SDK 配置

Manage Jenkins(系统管理)–> Configure System(系统设置) - Global properties(全局属性)

linux下安装Android SDK可以参考 https://blog.csdn.net/u011974797/article/details/78973012

如果你项目中需要NDK,也需要在这配置NDK的路径。

创建任务

点击新建一个任务

输入任务名,选择Freestyle project(自由风格项目),点击ok进入配置页面。

项目配置

General

这里主要注意“This project is parameterized”,勾选后可以自定义一些变量,这些变量可以替换你项目中gradle.properties里的变量,比如app名字等,也可以在后面构建过程中使用这些变量。这些变量在你构建前,需要自己选择或填写。我这里主要添加了项目正式和测试变量。

Source Code Management(源代码管理)

源码可以选择Git或者Svn,这里用Git举例。在对应位置填上Git仓库地址。证书可以选择已有的或者添加新的,可以使用SSH或账号密码,在分支上天下你需要编译的分支。已有的证书Jenkins首页Credentials(证书)中进行管理。

Build Triggers(构建触发器)

可以选择不同条件进行构建,定时构建语法可以查看https://en.wikipedia.org/wiki/Cron#CRON_expression,我这边没有添加触发器,需要手动触发构建

Build(构建)

Build中选择Invoke Gradle Script

如果你想让 “General”项中配置的参数可以在编译时准确将值替换到项目gradle.properties中,需要勾选 ”Pass all job parameters as Project properties”项。

如果你项目gradle配置了签名信息,并且确保路径能找到到这配置就结束了,否则需要安装“Android Signning Plugin”插件进行签名配置,具体可以自行搜索。

执行构建任务

点击“Build with Parameter”,选择填写需要的构建参数,执行构建

等待构建结果,如果失败可以查看对应信息,找到问题并解决,如果构建成功,正常可以在workspace里对应位置找打apk,一般在/app/gradle/output目录下,或者自行配置的目录里,我这里把通过gradle的任务把apk复制到了根路径的output目录下,方便查找。

后记

这里只使用了Jenkins基础的自动打包功能,还可以通过不同配置或者其它插件实现更强大的功能,例如定时构建;安装配置蒲公英插件,实现自动打包,自动发布到蒲公英;构建完成,发邮件通知,或集成钉钉机器人通知。如果有这些需要可以自己去了解。