Jenkins实现Android自动化打包编译
所谓的Android自动化打包其实就是利用Jenkins提供的相关功能,结合Gradle相关命令对指定仓库的Android项目进行一系列的操作,以达到我们对项目的一些固定化操作(诸如自动化编译、检查、打包、定时构建、操作后邮件通知等等)。
另外本文主要针对Centos系统环境下的Jenkins配置、以及Jenkins安装后的自动化打包编译Android项目的相关操作进行简单介绍,有需要了解其他的欢迎评论交流~
Jenkins简介
Jenkins是开源CI&CD软件领导者, 提供超过1000个插件来支持构建、部署、自动化, 满足任何项目的需要。所以Jenkins不仅仅可以用于安卓项目,几乎所有的项目都可以借助Jenkins进行自动化操作、部署...... 。
Jenkins安装
Jenkins的安装可以简单的分为以下几步:
- Jenkins依赖配置
- Jenkins密钥导入
- JDK环境安装
- Jenkins安装
3.1 Jenkins依赖配置
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
Jenkins密钥导入
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io.key
注:如果系统之前导入过相关密钥,这里会报错,可以直接忽略进入下一步
JDK环境安装
本文以当前最新版的Jenkins(2.361.4 LTS)进行介绍,在最新版的Jenkins中虽然安装完成后它的配置文件还是以JDK1.8进行配置的,但是1.8已经不能支持Jenkins服务的启动了,需要最低使用JDK11的版本进行,因此如果你的环境中配置的是低于JDK11的版本这里必须进行JDK的安装。
由于版权问题,这里都推荐安装使用Openjdk,安装方式这里可以使用yum进行快速安装,也可以自行下载相关文件进行配置安装。
yum install fontconfig java-11-openjdk
注:如果是直接通过yum进行快速安装的,那么安装后的jdk路径在/usr/lib/jvm下面
Jenkins安装
这里的安装同样使用yum进行快速安装,也是官方推荐的安装方式:
yum install jenkins
Jenkins启动&初始化
Jenkins两种启动方式
第一种:使用systemctl启动
// 设置服务可用
systemctl enable jenkins.service
// 启动服务
systemctl start jenkins.service
// 停止服务
systemctl stop jenkins.service
// 查看服务状态
systemctl status jenkins.service
这种启动方式有的情况可能会报错,可以根据错误信息具体解决,这里提一点由于jdk环境导致的错误,可以直接修改jenkins的配置文件/etc/init.d/jenkins中的candidates字段,修改或者增加自己的jdk信息即可。
第二种:直接进入/etc/init.d目录后使用jenkins服务直接启动
// 启动服务
./jenkins start
// 停止服务
./jenkins stop
初始化
Jenkins服务启动后我们就可以使用服务器公网ip/域名+8080端口直接访问到我们的服务,当然可以根据实际情况使用nginx/Apache等进行域名映射等。
1、 初始密码
第一次访问jenkin会要求输入系统生成的一个默认密码。
2、 插件安装
这里默认提供两种方式:安装推荐插件+选择插件来安装。这里如果只是单纯的Android自动化打包编译的操作,包括什么邮件通知等服务,直接安装推荐的插件就可以了。
3、 创建管理员账户
这里可以直接使用admin账户也可以自定义一个管理员用户名。
4、实例配置
这里可以修改你需要访问到jenkins服务的地址,也可以不修改保持默认,根据自己实际情况进行配置即可。
5、初始化完成
6、进入主页
配置完成后就可以进入到Jenkins主页了,如果大家设置的中文显示可能就会存在上面截图一样翻译不彻底的情况,如果你也遇到了直接进行Jenkins服务重启即可解决。
Android项目自动打包编译配置
正如前面所说,要实现Android项目的自动打包编译需要借助Gradle,同时既然是Android项目当然也需要我们的系统有支持Android环境的相关配置才行,所以要想实现相关功能这里需要具备以下几个条件:
- Jenkins安装git插件或者系统安装git工具
- 系统安装Android SDK
- 系统安装Gradle环境或者Jenkins配置安装
配置Git
配置git这里简单介绍以下如何在centos去安装git,同样两种方式:
方式一、yum快速安装
这种安装方式目前来看不是很建议,它安装之后的版本目前停留在1.8.3的版本,比较老了,如果对版本没有要求的可以直接采用这种方式安装。
yum install git
方式二、源文件编译安装
这里就需要下载对应的git安装包文件到服务器上进行解压、编译安装了,这里就不展开详述了,有兴趣的可以自行百度或者评论交流~
安装Android SDK
第一步、下载Android SDK
我们需要到官网去获取sdk的具体下载链接,然后下载到自己的服务器进行配置。
Android SDK官网地址:developer.android.google.cn/studio/#dow…
SDK tools目前最新的下载地址:dl.google.com/android/rep…
第二步、配置环境变量
这里将下载好的文件进行解压存放,然后将解压后的路径配置到系统环境变量中:
// 编辑环境变量
vi /etc/profile
// 这里是个人的路径,请改为自己的路径
export ANDROID_HOME="/home/Android/android_sdk"
// 这里记得配置$PATH,不然其他的环境变量都会失效
export PATH="$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$ANDROID_HOME/platform-tools:$PATH"
第三步、安装所需的Android编译版本
这里的安装可以使用编译工具tools的bin目录下面的sdkmanager命令进行,安装前可以通过sdkmanager --list查看可以安装的项目。
第四步、配置Jenkins的Android环境变量
系统Android SDK配置好后需要到Jenkins的系统管理 > 系统配置中增加Android的环境变量;
安装Gadle
这里不一定在系统中进行安装,可以直接在Jenkins中进行配置,也是可以完成安装的,这里就先简单介绍以下Centos配置Gradle环境。
第一步、下载Gradle
wget https://services.gradle.org/distributions/gradle-6.5-all.zip
第二步、解压
unzip https://services.gradle.org/distributions/gradle-6.5-all.zip
第三步、配置环境变量
// 编辑环境变量
vi /etc/profile
// 配置gradle目录
export GRADLE_HOME="/home/Androd/gradle-6.5"
// 加入系统环境变量
export PATH="$PATH:$GRADLE_HOME/bin"
实现自动打包编译
以上所有的环境配置都完成后我们就可以利用Jenkins进行Android程序自动打包编译了。
创建任务
这里输入任务名称以及选择第一项“构建一个自由风格的软件项目“即可。
配置任务
第一步:描述任务
这里简单编写一下任务描述即可,同时可以选择一下任务的基本信息,我这里就简单写了一下任务描述,便于后续快速区分。
第二步、源码管理
由于本文介绍的是基于Git仓库的项目自动化构建,所以这里我选择git,并提供了相应的git仓库地址,同时如果你的仓库不是开源的,需要同时提供相应的账户进行鉴权,不然无法Clone下来进行构建。
第三步、构建触发器
这里如果有相应需求的可以进行选择。
第四步、构建环境
这里根据项目实际情况进行选择即可,我这里简单选择了每次构建前都清楚之前的工作空间,避免缓存影响。
第五步、构建步骤
这里的构建步骤就是你想进行哪一些具体的构建操作,都可以在这里进行配置。由于我们这里讲的是Android项目的自动化构建,所以我们选择gradle进行。
另外我们事先在系统中配置了Gradle环境,所以这里只需要选择配置好的即可。同时在Tasks中输入我们要执行的gradle命令即可。
第六步、构建后操作
这里的配置不是必须的,一般来说会选择邮件通知,当然也可以多选。如果选择邮件通知可以在构建失败或者成功后发送一封指定格式内容的邮件到我们的指定邮箱,这样我们也可以随时知道构建的状态。
七、写在最后
其实Jenkins可以做的事情非常的多,而上面我所介绍的Android自动化构建也只是一个简单的入门操作,只能算是用作熟悉Jenkins基本操作的一个简单介绍,有兴趣的看官可以自行研究或者评论交流。如果对文章内容有任何问题的也欢迎评论、私信一起探讨。