Jenkins实现Android项目CI和二维码下载

Posted wpyily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Jenkins实现Android项目CI和二维码下载相关的知识,希望对你有一定的参考价值。

前言

目前参与一个SDK项目中的测试工作,想把整个获取测试包的过程自动化起来,所以用jenkins做了一个CI流程,目前暂时具备以下功能:
- 自动触发更新
- 自动Build Task
- 在页面上产生可下载附件
- 二维码扫描安装

环境搭建

Jenkins安装
Jenkins的安装部署在这里不做赘述,需要注意的是最新版本分为1.651.3版本和2.12两个版本,配置会有差别,具体更新可以参看官网—— Jenkins官网。本文例子是在Tomcat中运行的,所以你得配置相关的环境,确保能正常访问到jenkins页面。

Jenkins插件
Jenkins插件库非常丰富,选择的时候会眼花缭乱,我在这里列一下我所用到的插件:
- description setter plugin(二维码会用到)
- Git plugin
- Email Extension Plugin
- Gradle plugin
- Maven Integration plugin
- SSH Slaves plugin

创建JOB

打开Job任务

设置源码管理

  • 如何设置Credentials请大家自行搜索。如下图:

  • 注意事项

    • Credentials配置证书如果需要输入密码,console打印的信息一直是获取中,直到超时
    • 配置的证书默认在~/.ssh目录下面
    • 拉取代码记得指定branch,master分支比较大(根据项目来判断)
    • 可以在【Additional Behaviours】->【Advanced clone behaviours】中设置:
    • Shallow clone:不拉取历史版本
    • Timeout (in minutes) for clone and fetch operations:修改默认超时的时间(默认10分钟)

构建触发器

代码拉取完成后,需要自动触发编译任务,Jenkins的触发方式有三种:
- Build after other projects are built:有关联项目触发的构建
- Build periodically:根据设定的时间固定触发
- Poll SCM:定期检测项目代码是否更新,更新才触发

增加构建步骤

我们项目选用的是gradle来构建的,所以在下拉列表中选择【Invoke gradle script】,如下图:

在“Tasks”输入框中输入你要调用的task就行,比如”:run“这样的命令

本地生成二维码

在构建任务中新增一个运行shell的命令(Unix/Linux),运行的是我自己定制的生成二维码的工具,代码已经开源,大家可以自己下载,地址是:https://github.com/ariesliu/QRcode4JAVA ,导出jar包后放到jenkins服务器指定位置,然后运行shell命令:

  java -jar yourRcodePath.jar url=yourAPKPath.apk image=latestapk.jpg save=yourQrcodeImagePath 

构建后操作

  • 生成apk文件
    • 选择【Achieve the artifacts】,填写build后生成的apk文件,比如:TesterDemo/build/outputs/apk/*.apk
    • 选择【Set build description】,在description中填写二维码地址,比如:< img src=’http://myIP:8080/latestapk.jpg‘>(左尖括号的空格去掉)
    • 增加邮件提醒,这里不做描述

执行Job

  • 效果如下:

以上是关于Jenkins实现Android项目CI和二维码下载的主要内容,如果未能解决你的问题,请参考以下文章

掌握使用gitlab ci构建Android包的正确方式

使用 Jenkins 搭建 iOS/Android 持续集成打包平台

Jenkins+Gradle实现Android移动端自动打包+生成apk二维码

Jenkins 结合 Docker 为 .NET Core 项目实现低配版的 CI&CD

论一款炫酷 Android 开源项目的修炼之路(下)

写给前端的 Jenkins 教程——快速实现前端/ Node.js 项目的 CI/CD