jenkins实现Android自动化打包,基于CentOS

写在开始:

jenkins自动化打包释放双手的好处就不多说了,本篇文章主要是基于CentOS,搭建一个运行在tomcat上的jenkins服务,实现android自动化打包。

一、服务器选择

  1. 购买阿里云服务器或者其他云服务平台,选择基于CentOS内核。如果仅在公司内部使用的话可以使用一台安装Linux系统的主机即可。
  2. 不熟悉Linux命令的同学,推荐使用服务器管理软件,宝塔linux面板安装
Centos安装脚本 yum install -y wget && wget -O install.sh
http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装成功后,牢记宝塔管理后台地址和用户名密码


1.png

二、CentOS安装必要的几个软件

1.centOS安装jdk。 可以参考详细教程
终端执行安装命令:

yum install java-11-openjdk-devel

这种方法安装的 JDK 位置位于/user/lib/jvm文件夹下
通过宝塔面板进入/etc/profile文件,配置全局变量:

JAVA_HOME=/usr/lib/jvm/java-11-openjdk 
export JRE_HOME=/usr/lib/jvm/jre 
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib 
export PATH=${JAVA_HOME}/bin:$PATH

如果你的系统中还装有不同版本的 JDK 的话。你可以运行以下命令去选中默认jdk版本:

alternatives --config java

2.安装Git

yum install git
git --version  #显示版本号,说明git安装成功

3.安装Android SDK
网上搜到最多的安装方式是基于android24版本的安装方案,早过时了。这里推荐使用官方commandlinetools安装sdkManager。 下载Command line tools

10.png

通过宝塔面板上传commandlinetools-linux-xxxx.zip文件到/usr/local/androidSdk,解压

其次,配置sdkmanager全局变量PATH

export SDK_HOME=/usr/local/androidSdk 
export PATH=${SDK_HOME}/cmdline-tools/bin:$PATH  # 配置sdkmanager环境

可以执行下面指令进行检查sdkmanager是否安装成功以及对应的版本信息

[root@vultr local] sdkmanager --sdk_root=/usr/local/androidSdk/ --version
5.0

列出已安装和可用的软件包

sdkmanager --sdk_root=/usr/local/androidSdk/ --list

选择安装软件包,安装的cmd指令

sdkmanager --sdk_root=/usr/local/androidSdk/ "platform-tools" "platforms;android-31" "build-tools;31.0.0"

下载了platform-tools之后,我们就可以把adb也一块配置上去了,即在 /etc/profile中追加以下全局配置

export PATH=${SDK_HOME}/platform-tools:$PATH  # 配置adb环境

并检查是否下载成功以及配置是否生效

[root@vultr local] adb --version

Android Debug Bridge version 1.0.41

Version 31.0.3-7562133

Installed as /usr/local/androidSdk/platform-tools/adb

4.安装tomcattomcat下载地址

这里选用jenkins运行在tomcat服务器上,所以先选择tomcat8 tar.gz下载

下载成功后,通过宝塔面板上传到路径/www/server下,解压文件

解压后,进入到/www/server/tomcat/bin目录下,通过终端执行./startup.sh启动tomcat

tomcat默认端口号是8080,打开浏览器输入http://你的地址:8080

如果出现如下页面,代表tomcat启动成功。


2.png

如果没有启动成功,确认一下防火墙是否打开,防火墙管理命令

# 开启8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
# 重启防火墙
firewall-cmd --reload
# 查询端口号8080是否开启
firewall-cmd --query-port=8080/tcp

三、安装jenkins并添加配置。

1.下载并安装jenkins。jenkins下载地址
找到.war文件并下载

3.png

下载成功后,依然通过宝塔面板上传到/www/server/apache-tomcat-8.5.73/webapps路径下 ,解压文件。

解压后,打开浏览器输入地址:http://你的地址:8080/jenkins

4.png

找到/root/.jenkins/secrets/initialAdminPassword路径下的管理员密码输入进去

安装推荐的插件

5.png

然后设置账号和密码,自动进入jenkins后台

如果推荐的插件下载不下来,可以尝试添加jenkins国内镜像:jenkins国内镜像

或者选择几个必要的插件安装:

(1)安装locale插件 ,设置jenkins语言

(2)安装git插件

(3)安装gradle插件

2.插件安装后,进入全局工具配置页面,添加jenkins配置

配置jdk、git、gradle全局路径

jenkins管理后台,从首页 >> 系统管理 >> 全局工具配置

6.png

(1)配置jdk,配置jdk的全局变量

7.png

(2)配置git ,/usr/bin/git是使用yum安装git的默认路径

8.png

(3)配置gradle,gradle可以选择自动安装,我这里选择的是gradle7.0.2

9.png

3.配置全局android sdk 路径

jenkins管理后台 >>首页>> 系统配置

11.png

添加sdk 环境变量


12.png

其实只用ANDROID_HOME 就行了,我这里打包的时候出现ANDROID_HOME与ANDROID_SDK_ROOT路径不一致的错误,所有在这里重复指定了一遍。
到这里,全局配置基本上已经完成了。

四、构建自动打包任务

新建任务,选择freestyle project

13.png

配置git仓库地址,如果public仓库不需要输入credentials

14.png

配置gradle 命令


15.png

开始执行一个任务吧

image.png

构建成功后的控制台输出

image.png

5、总结。

按照以上步骤,已经可以实现一个基础的android自动化打包工具了。如果需要定制参数等其他的jenkins配置,可以参考推荐链接
搭建过程并不是一戳而就的,难免会遇到各种各样的问题,遇到问题及时google寻找解决办法。

常见问题:待补充

参考链接:
https://juejin.cn/post/6844904083749339144
https://blog.csdn.net/T_double/article/details/109252621
https://cloud.tencent.com/developer/article/1489225

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,527评论 5 470
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,314评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,535评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,006评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,961评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,220评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,664评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,351评论 0 254
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,481评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,397评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,443评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,123评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,713评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,801评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,010评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,494评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,075评论 2 341

推荐阅读更多精彩内容