Jenkins+Gradle+Git+Pyger+二维码搭建Android自动打包平台

1、下载jenkins war包

Jenkins官方网站下载最新的war包,然后在war的目录下打开cmd,执行命令:java -jar jenkins.war
看到以下信息,就表示jenkins安装成功了。

2、启动jenkins

第一次启动Jenkins时,出于安全考虑,Jenkins会自动生成一个随机的口令。注意控制台输出的口令,复制下来,然后在浏览器输入:http://localhost:8080/
粘贴口令,进入安装界面,如果执行默认的安装,Jenkins就自动配置好了Maven、git等常用插件。最后,创建一个admin用户,完成安装。
启动Jenkins的命令:java -jar jenkins.war

3、系统设置->全局工具配置

JDK配置:

Gradle配置:

Git配置:需要限下载Git安装哦~

4、创建项目

输入项目名称,选择自由风格类型。下一步就是各种项目配置了(这里先不考虑构建触发器)。

这里是从github上拉取数据的,需要github帐号:

构建的设置有3项:
Task:clean assembleRelease --refresh-dependencies
Root Build Script:${workspace}/app

Build File:${workspace}/app/build.gradle


注意,Jenkins默认生成的文件都放在.jenkins目录下。跟项目相关的是存放在workspace中,如果apk要指定输出的路径,需要复制工程的local.properties到.jenkins/workspace/XXX具体工程下。

ok,这样子就可以开始构建项目了。

5、上传apk到蒲公英平台

首先,先下载插件upload to pgyer;然后在构建后添加步骤upload to pyger,填入pgy的userkey和apikey,还有当前apk存放路径和名称,这几个是必填项。


具体的请参考:

https://www.pgyer.com/doc/view/jenkins
https://www.pgyer.com/doc/view/jenkins_plugin

6、生成二维码
apk打包好上传到蒲公英,成功会返回成功的信息,其中就有二维码的地址,那么我们要如何让这个二维码展示在历史记录呢?
首先,需要下载插件“description setter plugin”,可以实现构建完成后设置当次build的描述信息。有了这个前提,我们可以以html的形式让二维码显示出来,但是Jenkins默认是plain text模式,不会对html解析的。所以我们需要在全局安全设置(Configure Global Security),将Markup Formatter的设置更改为Safe HTML即可。

<a href="${appBuildURL}"><img src="${appQRCodeURL}" width="118" height="118"/></a>

具体参考:
http://blog.csdn.net/u011904605/article/details/54619549

7、配置邮箱通知
因为系统自带的邮件通知配置只能通知到一个邮箱接受者,所以我们这边用的是插件: Email Extension Plugin。
下载安装完成后,在构建后添加步骤Editable Email Notification:

这样子配置完,你打完包会发现,没有发送邮件给接收者,提示“ No emails were triggered.”。解决办法是点击左边的“系统管理”菜单,选择右边的“系统设置”,找到Extend E-mail Notification进行全局配置。



再不行的话,在具体项目中设置触发器:

遇到的问题

1、第一次构建项目时,编译失败,报错信息为“Error occurred during initialization of VM Could not reserve enough space for 2097152KB object heap”。
解决办法:Android工程目录打开gradle.properties,找到 org.gradle.jvmargs=-Xmx2048m,将org.gradle.jvmargs=-Xmx2048m 改为org.gradle.jvmargs=-Xmx1024m保存。jenkins重新构建Android项目,这时可构建成功。

2、提示“ An attempt to send an e-mail to empty list of recipients, ignored.”
这是Extend Email Plugin的一个bug,解决办法如图:

多渠道打包参考这篇文章:

http://www.th7.cn/Program/Android/201702/1109247.shtml

posted @ 2018-01-17 17:11  ha_cjy  阅读(627)  评论(0编辑  收藏  举报