使用Jenkins实现Android自动化打包

什么是Jenkins

Jenkins是一个独立的、开放源码的自动化服务器,它可以用于自动化与构建、测试、交付或部署软件相关的各种任务。

官网:https://jenkins.io/

用处

Jenkins 持续集成可以实现整个流程的自动化,即自动构建 build,上传到指定地址,再下载安装包到指定的环境中进行安装,并进行 BVT 测试。这个流程可以设置每日定时进行,这样就可以加快整个开发过程,使得每个开发人员更好的掌握和控制开发流程。

下载

  • war包方式
  • msi安装

war包方式

下载地址:Download Jenkins

下载后解决运行下列命令即可

1
java -jar jenkins.war --httpPort=8080

下载msi安装包

其中有两个版本

  • Long-term Support (LTS)

LTS(长期支持)版本每隔12周从定期发布流中选择,作为该时间段的稳定发布

  • Weekly

每周发布一个新版本,以向用户和插件开发人员提供bug修复和功能。

我下载的是Weekly版本,上线应用建议下载LTS版本

下载地址:Download Jenkins 2.127 for : Windows

双击安装msi,完成后在服务中停止Jenkins,修改端口

文件路径在Jenkins\jenkins.xml,改为–httpPort=6060

1
2
3
<executable>%BASE%\jre\bin\java</executable>
<arguments>-Xrs -Xmx256m -Dhudson.lifecycle=hudson.lifecycle.WindowsServiceLifecycle -jar
"%BASE%\jenkins.war" --httpPort=6060 --webroot="%BASE%\war"</arguments>

在服务中重新启动

查看并配置

解锁jenkins

解锁jenkins

安装推荐的插件

安装推荐的插件

安装完成后修改密码

Jenkins 全局配置

JDK 和 Gradle 配置

系统管理 > 全局工具配置 > JDK

JDK配置

系统管理 > 全局工具配置 > Gradle

Gradle配置

Android SDK 配置

系统管理 > 全局属性 > 环境变量

SDK配置

创建 Jenkins 构建任务

新建任务

SDK配置

配置基本信息

SDK配置

配置源码

SDK配置

配置构建

SDK配置

release打包

1
2
app:clean
app:assembleRelease

debug打包

1
2
app:clean     
app:assembleDebug

配置构建后

SDK配置

1
**/*.apk

立即构建

1
2
3
4
5
BUILD SUCCESSFUL in 4m 3s
26 actionable tasks: 25 executed, 1 up-to-date
Build step 'Invoke Gradle script' changed build result to SUCCESS
归档成品
Finished: SUCCESS

出现了BUILD SUCCESSFUL, 代表任务构建成功

参考:Jenkins实现Android自动化打包

出现的问题

反向代理设置有误

Jenkins URL和浏览器URL不一致导致,都改成scheme://ip:port

1
http://192.168.1.138:8080

参考:Jenkins says my reverse proxy setup is broken

‘gradle.bat’ 不是内部或外部命令,也不是可运行的程序

1
2
3
4
5
6
[Gradle] - Launching build.
[AppTest] $ cmd.exe /C "gradle.bat app:clean app:assembleRelease && exit %%ERRORLEVEL%%"
'gradle.bat' 不是内部或外部命令,也不是可运行的程序或批处理文件。
Build step 'Invoke Gradle script' changed build result to FAILURE
Build step 'Invoke Gradle script' marked build as failure
Finished: FAILURE

解决方法:在构建里面选择相应的gradle版本

首次安装配置完成之后出现首页空白

重启Jenkins重新打开网页

构建失败C:\Windows\system32\config\systemprofile.… error: file not found.

1
2
C:\Windows\System32\config\systemprofile\.gradle\caches\transforms-1\files-1.1\appcompat-v7-27.0.2.aar
\3e08b96e74c78baa41badc9dd9c3458f\res\drawable-hdpi-v4\abc_ic_menu_share_mtrl_alpha.png: error: file not found.

打开cmd

1
echo %USERDOMAIN%\%USERNAME%

获取到之后填入,检查名称后无误后点击确定

Jenkins10

填入该账号的密码确定

Jenkins10

重启服务

注: 该账号的密码不能为空..不然报错

参考:Running Jenkins in Windows with regular user account to see executables in PATH


相关主题