Jenkins搭建实现Android自动化打包(Windows版
2020-02-22 本文已影响0人
我就是Root
1.软件安装与配置JDK8+Android SDK+Gradle4.4
1.1 安装与配置JDK8
(1)新建->变量名"JAVA_HOME",变量值"C:\Java\jdk1.8.0_05"(即JDK的安装路径)
(2)编辑->变量名"Path",在原变量值的最后面加上“;%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin”
(3)新建->变量名“CLASSPATH”,变量值“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar”
1.2 安装更新开发的版本Android SDK Manager
test_for_gerrit_android:[Android SDK Build-Tools 27.0.3, Android SDK Platform 27]
antstorm_AD_Screen: [Android SDK Build-Tools 26.0.2, Android SDK Platform 25]
Android SDK Manager 无法获取更新版本列表,更新下载服务器:
改网址为:mirrors.neusoft.edu.cn 端口:80
查看开发使用的什么SDK版本开发的apk?在Jenkins server目录下
C:\Program Files (x86)\Jenkins\workspace\test android\app build.gradle
image.png1.3 Android SDK环境变量配置(设置PC的系统环境变量)
ANDROID_HOME : F:\SDK
Path:%ANDROID_HOME%\tools
1.4 下载使用Gradle 4.4
- 下载地址:http://services.gradle.org/distributions/
- 下载gradle-x.x-all.zip解压到本地
1.5 Gradel环境变量-系统变量设置:
GRADLE_HOME : F:\Gradel version\gradle-4.4
Path:;%GRADLE_HOME%\bin
打开cmd,输入gradle -version看到对应版本,说明配置成功,如下图
image.png
关于Gradle版本选择配置的说明:
- 最好使用开发项目中对应的版本,高版本也是可以的;下面路径文件查看:
- 在Jenkins的工作区项目文件夹下,查看gradle-wrapper.properties文件最后一行
- C:\Program Files (x86)\Jenkins\workspace\AD_Screen\AntStorm\gradle\wrapper image.png
2.在本地和Jenkins打包的命令,以及签名加固
2.1 在本地使用Gradle命令打包代码成为.apk
- 首先你要先确认本地打包是ok的,再去Jenkins配置
- 打包的apk在路径 C:\Program Files (x86)\Jenkins\workspace\android825\app\build\outputs\apk
cmd切换路径到代码工程路径,开始是在user\Administrator
cd c:\
cd C:\Program Files (x86)\Jenkins\workspace\test android
gradle build
一些常用的命令解说(in cmd)
- gradle build 检查依赖并编译打包,打2个包版本: release and debug
- gradle assembleDebug 编译并打Debug包 (测试时候使用这个包进行测试)
- gradle assembleRelease 编译并打Release的包(Jenkins打的这个包还没有签名加固,然后使用360加固宝签名,再放到生产)
2.2 使用360加固宝.exe签名release包,生产环境使用这个
详情请参考360加固宝使用教程...
2.3 在Jenkins的Task里面运行脚本命令输入:
- 清除之前的build编译release and debug
- 也可以不用加clean,那么它不会清除之前的,你可以手动删除,看开发配置没有,配置了的话每个apk最后标记会有当时的时间,release是配置了的,debug没有,这里我们建议手动删除再去Jenkins运行Job,因为我没有配置clean;如果你手动删除了,那么我Jenkins配置了clean他会找不到需要clean的包而报错。
clean build
打包debug
clean build assembleDebug
打包release
clean build assembleRelease
蚂蚁风暴app打包:使用开发自定义的打包命令来打包: 默认为测试环境
test环境包:assembleApi_testDebug --stacktrace
dev环境包:assembleApi_devDebug --stacktrace
master生产包:assembleApi_masterRelease --stacktrace
测试和生产包:
assembleDebug --stacktrace
assembleRelease --stacktrace
3.安装Jenkins,搭建本地服务器
- Jenkins下载地址:http://jenkins-ci.org/
- 运行Jenkins安装程序
3.1 把管理员密码copy到输入框
image.png密码路径
C:\Program Files (x86)\Jenkins\secrets\initialAdminPassword
密码:xxxxxxxxxxx,是一串数字和字母的字符串
3.2 安装选--->推荐插件--->等待自动安装完毕---> Install done
image.png3.3 Jenkins本地访问地址(公司局域网用户,访问IP地址):
http://192.168.2.13:8080/,or,http://localhost:8080/
3.4 配置代码SSH账户
- 使用GIT工具在本机生成:公钥+私钥的命令(为了安全性)
- 只要在当前PC运行生成一次即可,如果把JOB删除了,找到路径重新配置即可
- 当然你得在此coding项目下,拥有coding代码相关访问权限
运行如下命令,第一次会要求输入你的coding代码仓库账户的密码
ssh-keygen -t rsa -C "youmai@inc.com"
image.png
3.5 如上Git工具生成公钥和私钥后,位置会显示在命令行里面:使用文本打开-全部复制到对应项
C:\Users\Administrator\.ssh
image.png
3.6 配置公钥id-rsa.pub到coding网站(个人设置-SSH公钥)
- 登录你的coding代码仓库,找到setting/keys地方配置ssh
- 名字任意,你添加和删除key都会收到阿里mail
3.7 配置私钥id-rsa到Jenkins账户里面
在Job配置账户凭据里面,选择SSH的项,username可以任意输入,再把私钥id-rsa内容全部复制到privete key,注意是全部哦!其他不填写
image.png4.Jenkins服务器持续集成配置
4.1 安装Jenkins插件,为需要的插件做准备!已安装插件打?
- 安装方式也比较简单,直接在Jenkins的插件管理页面搜索上述插件,点击安装即可
- 插件安装地址 http://localhost:8080/pluginManager/available
1.GIT plugin ?
2.SSH Credentials Plugin (coding代码仓库账户key匹配使用)?
3.Git Changelog Plugin: 获取仓库提交的commit log (选的这个了Git Changelog ?)
4.build-name-setter:用于修改Build名称?
5.description setter plugin:用于改Build描述信息,在描述信息中增加显示QRCode(二维码)
description setter选2个description setter+Project Description Setter ?
6.Post-Build Script Plug-in:在编译完成后通过执行脚本实现一些额外功能(PostBuildScript ?)
7.Xcode integration: iOS专用(可选)?
8.Gradle plugin: Android专用(可选)?
9.Job cacher
4.2 检查git能否把coding server的代码拉取到本机:
- 在本地新建文件夹,存代码的位置,然后拖动路径到git为切换到此路径
- 使用工具Git Bash拉取代码到这个path,如果结果成功,表示账户和拉取是ok的
git clone git@e.coding.net:axx/project-name.git
4.3 Jenkins系统设置(系统管理--系统设置)
系统设置地址 http://localhost:8080/configure
ANDROID_HOME: F:\android sdk 24
GRADLE_USER_HOME: F:\Gradel version\jenkins-gradle-cache
ANDROID_HOME这个也是和电脑系统环境变量中的参数一致的
image.png
4.4 全局工具配置
- 地址 http://localhost:8080/configureTools/
- 需要配置JDK+Git.exe+Gradle4.4的路径在Jenkins
- 备注:如果开发的app- gradle-wrapper.properties中的gradle是4.1版本,不影响的;其他默认不选择
注: Gradle plugi4.4是取的名字,可以任意;会在后面Nvoke Gradle SCRIPT选择中调用此插件版本
5.新建Job配置
5.1 新建项目
image.png5.2 源码管理
把coding项目中的SSH链接copy到此处
image.png5.3 配置项目coding账户:
选择SSH的项,任意username,再把私钥id-rsa内容复制到privete key,其他不填写
私钥路径 C:\Users\Administrator\.ssh
image.png
5.4 填写Repository URL:
git@e.coding.net:xx/project-name.git
Credentials:你自定义的那个username,2者显示ok,不报错说明正确
Repository URL你也可以填写https的方式,就不用配置ssh秘钥了,直接输入账户密码去拉取codes
5.5 构建
选择项:Invoke Gradle SCRIPT--->Invoke Gradle
选择安装的命名的Gradle版本4.4,Gradle plugin是在全局工具配置取的名字
Tasks填写为 clean build --stacktrace--debug
Root Build script填写为 ${WORKSPACE}
Build File填写为 ${WORKSPACE}/build.gradle
image.png
其他高级设置-可以不设置
- 定时构建-触发job的时间的set(可选设置,我们可以让Jenkins server在某个时间自动运行)
- https://blog.csdn.net/zzy1078689276/article/details/77520441/
- https://blog.csdn.net/walid1992/article/details/51493271
遇到的一些问题
- 1.需要关闭本机防火墙all
- 2.JDK版本不能太高10.0.2,更换为JDK8
- 3.use开发版本的 Gradel 4.4-all
- 4.Android 8.1.0(API 27)应该和开发的版本保持一致性,在Android SDK Maneger下载对应的
- 5.Jenkins新建gradle download 存储空间,解决报错
- 6.Jenkins console log多处,查询百度解决
- 7.查看自己所需的gradle文件版本C:\Program Files (x86)\Jenkins\workspace\testapk\gradle\wrapper
- 8.Jenkins 创建的Job命名规则:不能有特殊字符和最后不有空格之类,容易发生不支持的字符串转码编译
如果开发对Android基础版本升级了,也需要升级对应的gradle版本即可,如果不行,删除之前的重新来,or 多构建几次即可,and check logs
build打包依赖问题:
-
解决所有新的PC机子配置自动化打包失败报错的验证版本
com.github.CymChad:BaseRecyclerViewAdapterHelper:2.1.7
-
2.1.7版本依赖包改成2.3.0
-
测试范围:主要是涉及 列表的有没有问题;如订单 优惠券 屏幕列表等;不限于以上功能