Kahn's blogs

搭建Jenkins+Git+Gradle持续集成CI打包平台

2017/11/17

优秀基础博客 看了很多网上的文章,挑选出来的
基本搭建:优秀博客
Android Jenkins+Git+Gradle持续集成-实在太详细(说参数说的比较详细)
利用Jenkins玩转Android自动打包发包
使用Jenkins搭建iOS/Android持续集成打包平台(说触发器说的比较详细)
Git+Jenkins之自动构建(主讲git配置)
Jenkins构建Android项目持续集(这是个系列文章,也是很详细的)
git拉完分支后会出现HEAD DETACH的解决方案

需要注意的几点

  1. 使用tomcat作为容器时,第一次下载tomcat注意把bin目录里的shell文件添加上可执行权限
    1. chmod 755 ./*.sh
    2. ./startup.sh
  2. 使用本机gradle时的问题(这里我使用是本机的gradle,而不是android studio的gradle,所以版本要注意!)
    1. 确定gradle版本,我使用brew安装的gradle
    2. brew search gradle查找brew服务器上都有什么版本,可以直接brew install [你想要的版本]
    3. 执行brew info gradle 查看当前你机器上的gradle。如果有多个,可以直接brew switch gradle 4.1 切换到你想要的版本
    4. 如果没有的话,可以去官网上下载包,然后把包解压到brew安装gradle的目录里,再使用brew switch gradle 4.1切换版本。(安装路径使用brew info gradle 查看)
    5. 想直接升级,可以brew upgrade gradle
    6. 注意:在你工程目录里执行./gradlew xxx是用的该工程(或者说是android studio)的gradle。命令行中直接gradle xxx用的才是本机的。
  3. 需要有有版本管理的源码库(可以是git,svn),这里我用的git,ssh授权的方式,比较简单,你本机如果已经对git服务器授权,不用配置直接就能用了。
  4. Archive the artifacts坑爹的选项
    1. 这个路径是配置你到底想要生成的什么结果。比如,你要构建一个android应用肯定是想得到生成的apk,但是Jenkins又不知道你要的是apk。你就在这里配置上你生成的apk路径就可以了。(本来我以为这个是配置输出重定向路径)
  5. 以上是最基本的配置,全部使用Jenkins。
    1. 而美柚这边Jenkins的功能都没用,使用的是【构建】选项卡中的Execute shell功能。在里面执行了一个shell。shell里面做了拉代码,执行gradle命令,copy apk去相应目录,生成下载界面的html,发送apk下载地址去相应的email。同时:生成下载界面也是使用一个shell。等于全部为自行执行shell来完成构建。

Jenkins集成单元测试和覆盖率插件

基本搭建:优秀博客
Jenkins构建Android项目持续集成之单元测试及代码覆盖率.
jacoco gradle插件官方说明文档
JaCoCo:分析单元测试覆盖率的利器 IBM论坛的文章,有分析覆盖率报告
修改jacoco源码,利用JDT和git做代码差异化对比实现增量覆盖(美团点评)
Jacoco覆盖率报告解读 讲解报告的各项指标含义
注意:Jenkins的jacoco插件和jacoco的版本需要对应。2.0以上的插件版本需要对应7.5以上的jacoco版本,不然覆盖率显示不出