Android 项目的 Jenkins 参数化构建

   2016-11-03 0
核心提示:项目分为三种类型构建:测试环境构建 debug测试环境构建后上传内测平台 (fir.im)发布版构建 release三种构建类型在完成后都保存构建输出的 apk,只有在类型 2 完成后执行上传到内测平台操作当前环境在配置参数化之前,已经具有基础的 jenkins 构建环境,jenki

项目分为三种类型构建:

  1. 测试环境构建 debug
  2. 测试环境构建后上传内测平台 (fir.im)
  3. 发布版构建 release

三种构建类型在完成后都保存构建输出的 apk,只有在类型 2 完成后执行上传到内测平台操作

当前环境

在配置参数化之前,已经具有基础的 jenkins 构建环境,jenkins 只支持一种类型的构建,每次需要构建不同类型的版本需要手动去改动的 invoke gradle script 中的 tasks 来实现。上传 fir.im 使用了 fir.im 官方提供的插件,在构建完成后直接上传对应目录的 apk 文件,如果不需要上传需要手动删除该步骤。

进行的改动

打开 jenkins 中需要改动的项目的「配置」界面。

jenkins 中的配置

  1. 勾选「General」中的「参数化构建」选项,添加参数,选择 Choice。然后在依次在 name,choices,description 中填写,参数名,可选的参数选项和该参数的说明。例如我这里添加的 name 为 build_type,choices 为 test, test_fir, release(每一行代表一种 build type)。
  2. 删除掉「构建」中的「Invoke Gradle Script」,因为需要针对参数进行处理所以自带的调用 gradle 脚本不能满足需求,这里选择「Execute Shell」类型添加,并在 Command 中填写:

    echo "构建类型 $build_type"
    chmod +x gradlew
    case $build_type in
     test)
     ./gradlew clean assembleDebug
     ;;
     test_fir)
     ./gradlew clean assembleDebug
     ./gradlew app:publishApkDebug
     ;;
     release)
     ./gradlew clean assembleRelease
     ;;
     *)
     exit
     ;;
    esac
    
  3. 删除构建完成后的 fir.im 上传。因为 fir.im 官方的插件也没有提供参数化构建的支持,所以这里改用官方提供的 gradle 构建插件,通过在 shell 中判断参数来决定是否调用上传脚本。

项目中的配置

项目中的配置主要是配置 fir.im 的 gradle 插件,可以参考官方的说明 http://blog.fir.im/gradle/ 。这里也简单描述一下步骤

  1. 项目级别 build.gradle 添加以下配置:

    buildscript {
     repositories {
    // ...
     jcenter()
    // 添加fir maven源
     maven {
     url "http://maven.bughd.com/public"
     }
     }
     dependencies {
     classpath 'com.android.tools.build:gradle:2.2.0'
    //添加fir插件依赖
     classpath 'im.fir:gradle-fir-publisher:1.0.7'
     }
    }
    
  2. 在 module 级别 build.gradle 添加如下配置:

    apply plugin:'im.fir.plugin.gradle'// 必填
    fir{
    //必填 上传 fir.im apk 字段,否则无法上传 APP 到 fir.im
     apiToken '替换为你的 fir.im API_TOKEN'
    
    //可选 上传fir.im 中显示的changelog
     changeLog '替换为你的更新日志'
    }
    

使用参数进行构建

配置完成够,会发现 jenkins 项目视图下的「立即构建」编程为使用参数进行构建。点击后会让用户选择三种构建类型,这里选择 test_fir 就可以构建并且上传到 fir.im 了。其他两种类型则会构建后归档构建结果。定制其他类型的构建同理。

 
标签: Hudson 安卓开发
反对 0举报 0 评论 0
 

免责声明:本文仅代表作者个人观点,与乐学笔记(本网)无关。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
    本网站有部分内容均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,若因作品内容、知识产权、版权和其他问题,请及时提供相关证明等材料并与我们留言联系,本网站将在规定时间内给予删除等相关处理.

  • Android自动化构建打包上传
    Android自动化构建打包上传
    jenkins+ Gradle 是一种集群自动打包的工具,测试人员不需要依赖于相应的开发人员进行打包,可以自己方便的构建测试包进行测试。以下是 Jenkins 的相关配置和使用。 注意:以下所有的安装和配置目录都尽量不要出现中文,以免有错误第一部分 Jenkins的安装安装
点击排行