Jenkins 项目实践篇

开始搭建 Android 项目自动化集成前需要先在 Jenkins 中做一些配置相关,并安装相关的插件。

Jenkins 配置相关

Android SDK 环境变量配置

Java JDK & Gradle 环境配置

Jenkins 插件清单

  • Gradle Plugin

    在项目配置界面里构建栏新增了一个选项,”Invoke Gradle script”

  • Git Plugin

    新建任务界面新增了两个选项,”流水线”与”构建一个多配置任务”

    项目配置-源码管理栏新增了一个选项,“Git”

    在项目配置界面里构建栏新增了一个选项,”Set build status to “pending” on GitHub commit”

    在项目配置界面里构建触发器栏新增了一个选项,”GitHub hook trigger for GITScm polling”

    在项目配置界面里构建后操作栏新增了三个选项,”Set GitHub commit status (universal)”


  • Git Parameter

    General-参数化构建过程栏新增了一个选项,“Git Parameter”

  • user build vars plugin

    构建环境栏新增了一个选项,“Set jenkins user build variables”

  • build-name-setter

    构建环境栏新增了一个选项,“Set Build Name”

  • description setter

    构建后操作栏新增了一个选项,“Set build description”

  • Upload to pgyer

    构建或构建后操作栏新增了两个选项,“Upload to pgyer with apiV1”

  • OWASP Markup Formatter

    全局安全配置界面新增了一个选项,“Safe HTML”,提供在“Build History 模块”中输出 html 样式。

  • 360 FireLine

    构建栏新增了一个选项,“Execute FireLine”

  • Publish HTML reports

    构建后操作栏新增了一个选项,“Publish HTML reports”

搭建 Android 项目自动化集成

  1. 首先将远程仓库的项目源码拉到本地,需要做如下配置

    其他暂不做任何配置,保持默认配置就可以了。

  2. 点击立即构建,稍后会看到一个蓝色圆圈输出显示

    点击蓝色圈圈按钮后,可以看到控制台输出信息

    在本地工作空间中,可以看到源码已经拉下来了。路径 “/Users/apple/.jenkins/workspace/vipyinzhiwei-android”。

  3. 接下来需要配置一个构建任务,实现在 Jenkins 平台构建 Android 项目,打包 apk 文件。

    首先在打包 apk 前需要编译项目,

    接着将编译后生成的 apk 文件归档,以便查看,

    配置好保存后,点击立即构建,构建成功后可以看到生成的 apk 文件,点击可以直接下载 apk 。

  4. 再来进一步扩展,可以选择版本分支与需要构建的类型进行打包输出 apk。

    另外需要对“Branches to build”作下修改,以便根据选中的分支或标签下拉源码。

    并且对“Tasks”作修改,以便根据选中的构建类型,进行编译打包。

    保存配置后,回到面板界面,点击立即构建按钮,可以看到如下图效果。

  5. 扩展优化 Build History 模块显示,增加显示构建姓名、构建类型等。

    当前 Build History 模块显示图如下所示。

    优化后,Build History 模块显示图如下所示。

  6. 扩展优化 Build History 模块显示,增加 apk 下载二维码显示。点击 二维码图片后跳转到apk下载界面。
    这里需要到 蒲公英 官网注册账号,申请密钥后,填写到下图配置中。

    优化后,Build History 模块显示图如下所示。(注意这里标记格式器必须支持 HTML 格式,才能显示出二维码图片)

  7. 进一步优化,将输出后的 apk 进行加固签名,并上传到 蒲公英 返回 apk 下载链接二维码。

    首选在构建栏,添加“执行 shell ”,代码如下。

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    #Java环境变量,360加固宝包里面有提供,根据自己本机的地址填写。
    JAVA_HOME="/Users/apple/Applications/360jiagubao_mac/jiagu/java/bin/java"

    #加固保环境变量,根据自己本机的地址填写。
    JIAGU_HOME="/Users/apple/Applications/360jiagubao_mac/jiagu"

    #登录 360 所需要的账户名和密码
    USER="360加固宝账号"
    PSSSWORD="360加固宝密码"

    #签名相关信息,请替换为实际签名的信息
    alias="别名"
    alias_password="别名密码"
    keystore_password="钥匙密码"
    keystore_path="签名钥匙路径"

    #登录360
    $JAVA_HOME -jar $JIAGU_HOME/jiagu.jar -login $USER $PSSSWORD

    #配置增强服务,可选项
    $JAVA_HOME -jar $JIAGU_HOME/jiagu.jar -config -x86 -crashlog

    #配置签名信息,用于加固完成后自动对 apk 重签名。
    $JAVA_HOME -jar $JIAGU_HOME/jiagu.jar -importsign $keystore_path $keystore_password $alias $alias_password

    #加固并签名
    $JAVA_HOME -jar $JIAGU_HOME/jiagu.jar -jiagu ${WORKSPACE}/apps/**/build/outputs/apk/release/*_release.apk ${WORKSPACE}/apps/**/build/outputs/apk/release -autosign

    另外这里需要对“Upload to pgyer with apiV1”栏 file wildcard 进行修改,以便将加固并签名后的 apk 上传到蒲公英返回。

    配置完成后,返回面板界面,立即构建,稍后可以在“控制台输出”看到如下图所示。

    加固后的apk已经输出到指定路径了。

    点击 二维码图片跳转到 apk 下载界面。

  8. 进一步扩展,增加代码检测。(需要安装插件 360 FireLine)

    配置好保存后,返回面板立即构建,构建成功后,在配置的路径文件夹,打开 360 FireLine 扫描生成的报告文件,“testReport.html”。在浏览器看到的效果图如下所示。

    如果想在 Jenkins 中直接查看火线扫描结果。(需要安装一个新的插件 HTML Publisher plugin)

    HTML directory to archive 项填写的路径就是“构建”栏中 Execute FireLine 结果报告路径.

    Index page[s] 项填写的路径就是“构建”栏中 Execute FireLine 结果报告文件名.

    配置好保存后,返回面板立即构建,构建成功后,看到如下图所示。

    单击 “HTML Report”后,可以直接在 jinkens 查看结果报告。


推荐阅读:
Jenkins 入门篇

vipyinzhiwei wechat
微信扫描二维码,关注我的公众号
0%