(Mac)Android自动打包(Jenkins+Gradle+pgy)

准备环境

配置Android ADB环境

关于Android整个开发环境的搭建,SDK的下载安装这里就不赘述了,配置adb环境可以参考、

这里查看adb是否配置成功可以在终端输入

1
adb version

显示以下信息则证明配置成功

1
2
3
Android Debug Bridge version 1.0.41
Version 28.0.3-5475833
Installed as /Users/vic/Library/Android/sdk/platform-tools/adb

配置Gradle环境

配置gradle环境可以看一下我之前写的这篇文章Mac 配置gradle环境变量.

这里查看gradle是否配置成功可以在终端输入

1
gradle -version

显示如下信息则表示配置成功
-w547

下载安装Jenkins

这里有两种方法可以用。参考Mac下Jenkins搭建

Jenkins环境变量的配置

左侧系统管理->系统设置,进入系统设置页面

全局属性下的环境变量,添加键值对
-w1284

左侧系统管理->全局工具设置,进入全局工具设置页面

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

-w1268

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

-w1294

项目配置

构建一个自由风格的软件项目

点击左侧菜单中的新建任务,然后在新的界面输入项目名字,选择构建一个自由风格的软件项目选项完成创建
-w1020

项目基本配置

点击左边的配置,从上到下一共6个tab,我们去一一配置自己想要的功能:

General

  • 描述里面我们可以写工程简介

  • “This project is parameterized”参数化构建
    -w931

  • “Discard old builds”丢弃旧的仓库
    -w920

源码管理

  • 源码管理,使用github选择git,使用svn选择subversion
    -w949

  • 点击add以后,进入选择身份验证的页面,没有ssh key的,选择用户名和密码,有ssh key的选择ssh验证(注意,这里填写的是private key,id_rsa文件中的key,不是id_rsa.pub中的key),填写完成后,点击add即可完成身份验证的添加。然后选择对应的身份验证
    -w1250

  • 项目的分支,填写你需要的分支

构建触发器

  • 选择Build periodically,输入:

    1
    H 2 * * *

    周期性的执行编译任务,强制每天凌晨两点构建一次
    -w945

  • 选择Poll SCM,输入

    1
    H/5 * * * *

    表示的就是每5分钟检查一次源码变化。
    -w934

    第一个参数代表的是分钟 minute,取值 059;
    第二个参数代表的是小时 hour,取值 0
    23;
    第三个参数代表的是天 day,取值 131;
    第四个参数代表的是月 month,取值 1
    12;
    最后一个参数代表的是星期 week,取值 0~7,0 和 7 都是表示星期天。

构建环境

这里可以设置一些项目信息,比如在构建之前删除工作目录,设置构建名称等等。。。(但是我没有设置)

构建

-w299

  • 增加构建步骤,选择Invoke Gradle script(编译)
    -w948

    • Gradle选择你配置的版本
    • Task中填写构建执行的语句(注意:不要选择Use Gradle Wrapper),一般要填写“clean assembleRelease”。先clean再build
      1
      2
      clean
      assembleReleaseChannels -PchannelFile=markets.txt
    • 在Root Build script中输入你想要包生成的位置,在Build File中输入项目的build.gradle的路径。即在Root Build script路径的后边加/build.gradle,可以不输入这两项,项目会有个默认构建地址,具体地址可以再jenkins的系统管理中查看。
  • 继续添加构建步骤,选择“Execute shell”,在command中填入(上传蒲公英)

    1
    2
    3
    4
    5
    6
    7
    8
    9
    ./gitswitch dev/ci
    cd Source

    filepath=`pwd`/app/build/outputs/channels/*pgy*.apk
    file=`ls $filepath`
    if [ $uploadPgy = true ]
    then
    curl -F "installType=2" -F "password=alpha" -F "file=@$file" -F "uKey=542e73b113b5908da8b028805bf7e837" -F "_api_key=8e860ee5ba4996f9b19e56c28e07846a" https://qiniu-storage.pgyer.com/apiv1/app/upload
    fi

构建后操作

Archive the artifacts(归档成品),输入内容

1
**/app/build/outputs/channels/*.apk, **/apk-checker-result.*

上传蒲公英

增加一个构建步骤,选择Execute shell,在command中填入

1
2
3
4
5
6
7
8
9
./gitswitch dev/ci
cd Source

filepath=`pwd`/app/build/outputs/channels/*pgy*.apk
file=`ls $filepath`
if [ $uploadPgy = true ]
then
curl -F "installType=2" -F "password=alpha" -F "file=@$file" -F "uKey=542e73b113b5908da8b028805bf7e837" -F "_api_key=8e860ee5ba4996f9b19e56c28e07846a" https://qiniu-storage.pgyer.com/apiv1/app/upload
fi

蒲公英官方文档地址https://www.pgyer.com/doc/api#uploadApp

调试

构建历史->控制台输出,可以查看构建日志,根据报错来具体定位问题
-w370
-w1064