一、前言
Android Jenkins 自动化打包,对于工程师来说,你就只管提交代码,不用关心怎么打包之类的。对于产品或者测试,我只需要从发布页面下载 APK 安装文件,不必每次都跑工程师那安装个最新的包之类,极大的提高了效率。
二、环境部署
2.1、Tomcat 安装配置
进入 https://tomcat.apache.org/ 官网,下载最新的 tomcat 安装包并且解压或者安装。
这里我们选择免安装版本,下载后解压出来,进入它的 bin 目录下:
打开 startup.bat 启动 Tomcat,在浏览器中输入 http://localhost:8080/,如果看到下面的界面,那么 Tomcat 就安装配置好了。
2.2、Jenkins 部署、安装到 Tomcat
进入 jenkins 的官网 https://jenkins.io/zh/download/,根据你搭建平台的不同,下载 jenkins war 包 ,我们这里用 windows 平台做演示。
把下载好的 jenkins.war 文件放在 tomcat 的 webapps 目录下,如下图所示:
然后在浏览器中访问 http://localhost:8080/jenkins/,等待一会后你将会看到如下界面 , 代表 Jenkins 已经部署完成了,下一步安装 Jenkins。
在上图的输入框内要输入超级管理员权限的密码,这个密码在红色路径的文件里 ,输入密码后,点击 continue 。填写完密码后,将会看到插件安装界面:
我们选择第一项,安装默认 Jenkins 插件。安装插件过程如下图所示:
等所有的插件都安装完成,我们将会看到用户名设置界面。这个界面你有两个选择可以操作:
- 选择一:直接点击 Continue as Admin 安装,默认此时的超级管理员为 admin
- 选择二:输入用户名,密码,确认密码,全名,电子邮件地址。然后点击 Save and Finish。注意你输入的用户名就是 Jenkins 的超级管理员。需要注意的是,上面的每一项都需要填写,否则点击 Save and Finish 按钮没有效果。
等上面的步骤都操作完毕,你将会看到如下界面,代表 Jenkins 的插件安装和超级管理员已经配置好了。
三、构建
这里拿我手头的一个项目做演示
3.1、创建任务
点击创建一个新的任务,如下图所示:
3.2、Jenkins 全局配置
JDK 和 Gradle 配置
由于Android 是基于 java 的,我们需要配置 JDK;由于我们用 Gradle 构建Android 项目,我们需要设置 Gradle 的环境 。
在 系统管理(Manage Jenkins) –> Global Tool Configuration:
Android SDK 配置
系统管理(Manage Jenkins) –> 系统设置(Configure System) – 全局属性
3.3、参数配置
3.3.1 选择git分支参数
进入刚才建好的任务:
点击配置,然后点击 General tab:
勾选参数化配置(This project is parameterized),新增一个 Git Parameter,前提是已安装 git-parameter 插件,安装jenkins插件的步骤是这样的:
lll
上图中,命名了一个分支名称变量为 “Branch”(记住这个变量名称,后面会用到),Parameter Type 选择的是 分支和标签(Branch or Tag),也就是既可以构建分支也可以构建 Tag。点击保存后,返回构建界面就会出现下图的 Branch 了:
3.3.2 BUILD_TYPE 参数
我们平时开发时,经常会针对不同环境(比如测试环境、预发布环境、生产环境)配置不同的 buildTypes,这时候就可以配置一个 BUILD_TYPE 参数,这样在构建时就可以选择指定的 buildTypes 来进行构建了。
跟上一个branch配置一样的入口,在下方点击添加参数,然后选择“choice Parameter”:
然后输入名称,“选项”里的内容需要与我们 Android 代码里的 BuildTypes 一致:
3.3.3、PRODUCT_FLAVORS(渠道)参数
我们app也需要指定某个渠道进行构建打包,这时候就需要配置渠道参数了。同上,添加一个“choice Parameter”,“选项”里的内容需要与我们Android 代码里的 productFlavors 一致:
3.4、项目仓库配置
进入刚才建好的任务,点击配置,然后点击源码管理 tab:
选择源码管理工具,Git 或者 Subversion , 下面我们的演示选择 Git:
1、填写 Git 仓库地址
2、选择 Git 证书凭证, 如果没有创建过证书,显示 none , 可以点击右边的 Add 按钮添加一个证书凭证。 添加证书凭证,添加的方法详见下面的图。
3、选择 Git 仓库的分支,这里我们用之前添加的 Branch 参数,根据选择的参数来构建对应的分支或标签。源码库浏览器,Git 有很多管理器,我们这里选择自动就好了。
从 Git 上拉取代码,有两种方式:用户名+密码、SSH,根据自己的需要选择。
这里我们演示用户名+密码的方式,填写 Git 仓库的用户名和密码:
3.5、构建
点击“构建”tab:
在 Task 里填写 Gradle 构建任务,这里是构建出 apk 的核心。jenkins 构建 apk 本质上是利用 gradle 的脚本来执行。
clean : 清除....../app目录下的build文件夹。
assemble${PRODUCT_FLAVORS}${BUILD_TYPE}:根据选择的 PRODUCT_FLAVORS 和 BUILD_TYPE 变量来执行,比如 assembleQQ_test 即构建 QQ 渠道 _test 环境的 apk。
Gradle 的脚本还有很多,这里不再展开。
3.6、构建app
到这里就已经全部配置好了,下面我们进入构建页选择需要的参数就可以进行构建了:
在 控制台输出(Console Output) 面板中,出现了 BUILD SUCCESSFUL , 代表任务构建成功:
四、构建后操作
4.1、构建完成后存档文件
构建时可能会生成多个文件,只将自己需要的文件做存档,点击“构建后操作”tab ,添加一个 “Archive the artifacts” ,填写路径:
具体填写的依据就是我们项目 app 构建成功后 apk 的存放地址:
再次构建承购后就会出现“构建产生文件”,点击即可下载:
4.2、构建完成后上传蒲公英
类似的平台还有不少,比如 fir,这里我们用蒲公英来举例,具体可以看官方文档 使用 Jenkins 插件上传应用到蒲公英,根据文档说明进行参数填写:
再次构建,成功后就会自动上传到蒲公英了,然后扫码就可以下载安装了:
4.3、构建结果通知钉钉
这里就不讲了,当做一个作业留给大家,查看官方文档自己完成。