Mac环境下Android的Jenkins自动化打包以及邮件通知

背景

  当时在学习如何用jenkins进行自动化打包的时候,去网上找了各种资料,感觉比较零碎。所以这里我将整个流程完整的梳理一遍


一、下载安装jenkins

这里有两种方法可以用。第一种操作方便,可以直接下载安装包,但是安装包会有一些莫名的问题。第二种操作繁琐一点,需要操作命令行,直接命令行安装:

  1. 直接登录官网下载:
    jenkins的官网下载地址:https://jenkins.io/download/
    因为这里是Mac下面所以需要选择MacOS的版本:(左边是稳定版本,右边是测试版本,所以一般都是选择左边的)
    1-1-1.png

    下载完成以后直接点击安装就可以了。之后在浏览器输入链接:http://localhost:8080 就行
  2. 命令行下载安装(推荐使用):
      ①.使用brew下载安装Jenkins(如果事先没有安装过brew工具的童鞋可以参考这篇文章):
    1-2-1.jpg
1-2-2.jpg

我这边是因为之前安装过了,所以这里会提示已安装,如果是没有安装过的会提示XXfiles,XXMB,built in XX minute XX seconds.
  ②.安装完成后,在终端输入Jenkins启动:

1-2-3.png

这个地方可能会出现一个错误,由于Jenkins安装后的端口号是8080,所以很容易会跟其他服务的端口号冲突,这个时候就需要修改端口号,命令行输入(本文默认全部使用8080端口)

vim /usr/local/opt/jenkins/homebrew.mxcl.jenkins.plist

打开以后如下图所示(初次使用vim的小伙伴可以注意下,在进入vim编辑器以后,需要随便敲一个字符才能进入编辑模式,敲ESC键,退出编辑模式。输入:wq保存并退出。有兴趣了解更深的小伙伴可以参考linux VIM基本命令

1-2-4.png

进入编辑模式,修改--httpPort=XXXX端口号可以尽量选择生僻点的,避免跟其他端口冲突
  ③.打开浏览器输入链接:http://localhost:8080就行了

二、Jenkins的环境配置

  1. 打开页面首先进入的是一个解锁页面,这里由于我之前已经配置好了,这个页面不会出现,所以我从网上找了张图,大概就是这个样子的:


    2-1-1.png

路径会有所不用,Mac下面路径这个

/Users/你的Mac用户名/.jenkins/secrets/initialAdminPassword

在这个路径下找到对应的密码输入

  1. 之后进入插件安装的页面,这个页面下直接选择[安装推荐的插件]。基本没什么问题,如果出现插件安装失败,可以参考这篇博客Jenkins插件下载失败两种处理办法.
  2. 接下来就是环境变量的配置:
      ①.首先点击左侧系统管理,看到系统设置,点击进入(无视掉上面的警告和提示吧,对主流程没什么影响):
    2-3-1.png

      ②.进入系统设置页面
    2-3-2.png

选择环境变量,点击Add,设置SDK的环境变量,Name的话一定要输入ANDROID_HOME,Value就是SDK当前SDK所在的目录.


2-3-3.png

设置Jenkins的URL,如果是本机的jenkins,那么直接设置localhost:8080。如果是服务器上面的Jenkins,那么设置服务器的IP就OK了。
设置邮箱地址,这里设置的是系统管理员邮箱,下面有地方会用到。要确保设置正确。


2-3-4.png



上面的Extended E-mail Notification和下面的邮件通知输入的内容保持一致即可


2-3-5.png

SMTP服务器就是上面系统管理员邮箱的SMTP,本文选择的是网易163邮箱,所以设置的是smtp.163.com。如果是QQ邮箱,那么设置的是smtp.qq.com。后缀就是邮箱地址@后面的内容。这里重点说明一下用户名需要跟系统管理员邮箱保持一致,而且密码是各大邮箱的授权码,并不是邮箱的登录密码,要切记,否则邮件就会发送失败。其他就按照图示写就可以了。然后点击保存。
附:
网易163邮箱授权码获取教程
QQ邮箱授权码获取教程
新浪邮箱授权码获取教程
阿里云邮箱授权码获取教程
谷歌邮箱授权码获取教程

  ③.系统管理->全局工具配置

2-3-6.png

JDK installations一栏里面点击Add JDK,Name随便取,不过最好对应好版本号;JAVE_HOME就设置为当前Mac下Java的安装路径。当然也可以设置成自动安装


2-3-7.png

git一栏配置:Path to Git executable里面设置的就是Git的安装路径(不知道Git安装目录的小伙伴可以参考这篇文章Mac和Windows快速查看git安装目录


2-3-8.png

gradle配置:一样名字最好跟着版本号,GRADLE_HOME就设置为gradle的安装目录


2-3-9.png

Maven库的配置(如果项目里面没有用到maven库,这一项可不必添加):同上
最后点击保存


三、项目配置

  1. 新建任务:


    3-1-1.png

输入应用名字,选择构建一个自由风格的软件项目,点击OK

  1. 进入项目配置页面:


    3-2-1.png

(本文选择的是git,如果有小伙伴是用SVN的,需要选择第三个radiobutton:Subversion.)输入git服务器上面可以clone的项目的地址。
然后添加证书:


3-2-2.png

类型如图设置,UserName和Password填写Git服务器上面你登录的用户名和密码,点击添加就OK了。

  1. 项目配置页面往下拉,有个Add build step按钮,点击选择Invoke Gradle script。出现下图所示:


    3-3-1.png

先选择Invoke Gradle:Gradle Version里面选择之前系统设置里面配置好的那个Gradle(这个时候Gradle的名字增加版本号的优势就体现出来了,你可以选择你想要的版本的gradle)
在选择Use Gradle Wrapper:Tasks里面填写build


此时需要点击保存,然后立即构建项目,将项目从git上面拉下来到jenkins目录下。然后在重新打开配置页面,页面下拉到同一个位置,右下角的Advanced按钮点击出现如下画面:

3-3-2.png

在jenkins目录下面找到刚才从git上面下拉的项目的路径,将项目中的build.gradle 路径写入Build File里面

  1. 继续往下拉,有个Add post-build action按钮,点击按钮选择Editable Email Notification,然后点击最下面Advanced settings按钮,出现如下图示:


    3-4-1.png

点击Add Trigger选择发送邮件的时机,我这里选择了总是,也就是说只要Jenkins进行一次打包,不论成功失败都会发送一次邮件。然后点击Advanced按钮:


3-4-2.png

Add按钮点击选择要发送邮件的集合,本文选择了开发者和接受者列表集合。
接下来设置邮件接收列表集合。Content里面的内容根据项目需求填写,其他的可以直接按照如图所示填写即可。
最后点击保存


PS:另外点击Add post-build action可以再设置E-mail Notification,设置对应的邮箱。不过我试了下在没有设置这个的情况下,Jenkins依然可以打包发送邮件,只是多了个警告,不知道哪位大佬可以解惑一下

Not sending mail to unregistered user xxx@qq.com because your SCM claimed this was associated with a user ID ‘xxx' which your security realm does not recognize; you may need changes in your SCM plugin
Sending email to: xxx@qq.com

四、项目运行

4-1.png

左侧菜单栏点击立即构建,Jenkins就会进行自动化打包了,耐心等候几十秒到两三分钟左右的时间,打包完成后会在邮箱里面收到一封邮件。打包log最后出现:

Sending email for trigger: Always
Sending email to: XXX@qq.com
Finished: SUCCESS

就代表打包顺利完成。

参考博客:

Android 使用 Jenkins 实现自动化打包【流程】&【踩坑】
MAC上搭建Jenkins实现Android自动打包
Jenkins 配置自动发送邮件,测试邮件发送失败
Mac 使用HomeBrew安装的Jenkins修改端口号

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

推荐阅读更多精彩内容

  • 作为一名Android程序猿,能偷懒时是一定要偷懒的。大家在开发中一定遇到过:测试说:帮我打个包吧,产品说:帮我打...
    小朱v阅读 6,952评论 3 14
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,104评论 25 707
  • 用两张图告诉你,为什么你的 App 会卡顿? - Android - 掘金 Cover 有什么料? 从这篇文章中你...
    hw1212阅读 12,723评论 2 59
  • 愉快的晚餐后,回到家,看到亚萍发的一遍荐读文章《为什么你的孩子不懂得心疼你》。 文章是老生常谈,无非是一个非常普遍...
    风从南方来1阅读 448评论 2 1
  • 装饰一新的牢笼 关着各式各样的动物 它们牺牲自由 为牢笼外的人们换来欢乐 其实,在它们看来 人类何尝不也生活在牢笼...
    霍永思阅读 285评论 0 4