Mac下使用Jenkins+Gradle+Git实现持续集成、apk多渠道打包以及如何生成二维码

前言:
记得刚到这家公司时,看到打包还是由开发人员进行打包,然后在把APK发给测试,当时就觉得这是一个占用猿子们的时间,因为在前东家那边都在使用Jenkins自动打包的。其实作为程序员,他们也是喜欢偷懒的,如果可以把打包工作做到自动化,这样就可以解决占用开发人员打包的时间了,当时也提过使用Jenkins自动化打包,然后被拒了,可能是由于刚到这家公司的原因吧,也是可以理解为什么会拒绝的,就在上周,当再一次提起后,居然就答应了,好了,口水都吐完了。接下来开始介绍如何通过借助Jenkins这个平台,进行自动化打包部署。

接触一个新东西之前你总得知道它是什么,它能做什么吧,那什么是Jenkins呢,它能做什么呢。

Jenkins简介

Jenkins是一个开源项目,提供了一种易于使用的持续集成系统,使开发者从繁杂的集成中解脱出来,专注于更为重要的业务逻辑实现上。同时Jenkins能实现监控集成中存在的错误,提供详细的日志文件和提醒功能,还能用图表的形式形象地展示项目构建的趋势和稳定性。Jenkins的前身是Hudson,是一个可扩展的持续集成引擎。ps:更详细的介绍请看官网 https://jenkins.io/

进入正题

这里用的环境是在Mac下面完成的,集成Jenkins有多种方式,这里讲解单独使用Jenkins集成的环境,
单独使用Jenkins,https://jenkins.io/先到官网上面下载一个pkg的安装包,或者是用指令直接安装,下载完pkg安装包后,然后直接打开安装就可以了,过程中全部选择继续或者同意,安装成功后就会自动启动Jenkins啦,是不是觉得很方便呢,
第一次会出现以下界面

image.png

这个界面的提示工作很到位啊,连到哪个路径下获取initialAdminPassword都告诉你了,好了,这个时候就到该路径下把initialAdminPassword生成的密码取出来后,输入就可以了,如果你不知道怎么进入该路径,有一个更简单的办法,下面告诉大家
image.png

当然啦,这个完整的路径你是无法进入的,因为secrets文件夹是没有权限,这个时候我们就进入到Home文件夹就好了,然后在把secrets文件拷贝到桌面或者其他地方,这样做事方便把initialAdminPassword取到,拷贝过程选择同意就可以了,
image.png

打开这个文件后,我们就可以看到一串由数字和字母组合而成的东西了,然后直接拷贝到刚才打开Jenkins的界面输入后点击Continue按钮,好了,我们离自动打包又近一步了,
image.png

这里可以选择安装插件,或者是安装Jenkins已经提供要安装的一些插件,这里我们选择Select plugins to install 就好了,因为我们只关心打包是否能用,其他一概不管,安装完成后会有这么一个界面展示在我们面前
image.png

填完后点击“Save and Finish”,至此,我们的第一步工作才算真正完成,
2.下面给大家介绍需要使用到的一些插件,不多说了,上来就是干
注意:列表中为主要插件,而Jenkins的插件是有依赖关系的,安装一个插件可能要先安装它依赖的插件,否则会安装失败。在可选插件勾选列表中的插件即可,依赖插件会自动下载,是不是很棒。
Git plugin
Gradle Plugin
Email Extension Plugin
description setter plugin
build-name-setter
user build vars plugin
Post-Build Script Plug-in
Branch API Plugin
SSH plugin
Scriptler
Dynamic Parameter Plug-in
Git Parameter Plug-In
Git Changelog
3.安装插件
image.png

点击管理插件进入到下一个页面

image.png

然后选到可选插件,在过滤那搜索框搜索我们所需要的插件,


image.png

等待安装完成后,可以马上重启,但是最后就等所有的插件都安装完了,在做重启吧,这样就可以省去很多时间,提高我们的效率。
完成之后,接下来就是配置环境的问题了,选到“Jenkins -- 系统管理 -- Global Tool Configuration”,有几个是我们需要安装的,如果没有就选择默认吧,

分别是JDK ,Git ,Gradle,路径都是你自己电脑上面安装的路径,Name可随便定义,不过还是建议起一眼就能看懂的
91f07921-d4ef-4bf4-bdf7-3b0a4e4a6c98.png
Gradle的路径,这个是在我电脑上面的路径,把这个配上就可以了。
image.png

配置好这些环境后,我们离自动打包又近一步了,接下来就可以新建一个项目进行测试了。

image.png
image.png

然后开始我们的一些打包配置


image.png
image.png

Git代码仓库管理配置

image.png

如果没有可以选择的用户名和密码,就点击旁边的add按钮,在里面添加用户名和密码,然后直接add保存就好了。


image.png

构建环境的选择,下面就直接粘贴图片了,

把Tasks里面的代码粘贴出来,方便拷贝

clean assemble${PRODUCT_FLAVORS}${BUILD_TYPE}
--stacktrace
--debug
image.png
image.png

想想如果打包编译完成后,直接在打包那边显示一个二维码出来,是不是觉得特别高大上,特别牛逼
,接下里就教大家去完成这个任务,其实这个也不难,因为Jenkins的插件已经帮我们做好了,我们只需要做些改动就可以了,首先我们需要下载一个插件“description setter plugin”然后做下面的配置,

dir='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
domain='/Users/admin/data/jenkins/workspace/APP/xxx/app/build/outputs/apk'
uri=`ls $dir`
#type='0release'
#if [ "$#${BUILD_TYPE}" != "$type" ]; then
#curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key" http://www.pgyer.com/apiv1/app/upload
#fi
RESULT=$(curl -F "file=@$domain/$uri" -F "uKey=ukey" -F "_api_key=api_key"  http://www.pgyer.com/apiv1/app/upload)
appQRCodeURL=$(echo "$RESULT" | sed "s/.*\"appQRCodeURL\":\([^,}]*\).*/\1/g")
merchantUrl=$(echo $appQRCodeURL | sed 's:\\\/:\/:g')

echo Desc: $merchantUrl
Set build description 的代码
^Desc: (.*)
<img src=\1>
image.png

然后点击保存,

image.png

接下来就是等待结果的时候,哈哈,激动人心的时刻到了

image.png

至此,我们的整个Jenkins自动化打包工作就已经完成啦。

PS:编译Android项目的过程,可能会出现查找local.profile文件的问题,然后我们需要在Jenkins -- 系统管理 -- 系统设置里面找到Environment variables,然后设置一下ANDROID_HOME就可以拉。

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

推荐阅读更多精彩内容