[开发日志]android app Jenkins 配置说明

添加构建参数:

选择参数化构建过程:

《[开发日志]android app Jenkins 配置说明》 image.png
《[开发日志]android app Jenkins 配置说明》 image.png

源码管理配置:

直接使用项目仓库 ssh 地址

构建环境配置

《[开发日志]android app Jenkins 配置说明》 image.png
《[开发日志]android app Jenkins 配置说明》 image.png

build name 是用来在 Jenkins网站显示的。

构建配置

配置执行脚本:

作用是删除build下的目录,清理环境。

echo "============================= Clean android/app/build dir start ============================="

TARGET_FILE="$WORKSPACE/app/build/"

if [ -e "$TARGET_FILE" ]; then
  echo "/app/build/ exists."
  rm -rf $TARGET_FILE
else
  echo "/app/build/ does not exists."
fi

echo "============================= Clean  android/app/build dir end ============================="

《[开发日志]android app Jenkins 配置说明》 image.png

采用 gradle 脚本编译,导入参数 API_MODE

编译后配置:

《[开发日志]android app Jenkins 配置说明》 image.png

上传代码apk 文件到蒲公英。显示蒲公英二维码。

在android项目 build.gradle 文件中中需要配置, 接收 API_MODE 参数和默认的值。

代码如下:

定义api环境枚举, ApiEnvEnum

enum ApiEnvEnum {
  DEV(1), PRE_RELEASE(2), ONLINE(3)
  ApiEnvEnum(int value) {
    this.value = value
  }

  private final int value
  int getValue() {
    value
  }
}


/**
 * 直接运行的编译环境在这里改动。 也可以在 gradle 编译的时候加参数 -PAPI_MODE={value}
 * {value} 可以是 DEV, PRE_RELEASE, ONLINE
 */

ApiEnvEnum defApiEnv = ApiEnvEnum.DEV

在android 节点下配置:

def envStr = project.hasProperty('API_MODE') ? API_MODE : "${defApiEnv.toString()}”

android defaultConfig节点下配置:


for (ApiEnvEnum anEnum : ApiEnvEnum.values()){

  buildConfigField("int", "API_MODE_${anEnum.toString()}", "${anEnum.value}")

}

buildConfigField("int", "API_MODE", "${(envStr as ApiEnvEnum).value}”)

在BuildeConfig中生成api环境,常量和当前环境值。

友盟错误统计的key ,推荐更具网络环境不同配置不同的key ,避免开发错误,上传到线上错误统计账号。

可以配置如下:

def umengDevKey = "5a790c9xxxxxxxx000f6"

def umengReleaseKey = “5a016xxxxxxxxx4127000099"

manifestPlaceholders = [

                        UMENG_APPKEY    : ApiEnvEnum.ONLINE.toString() == envStr ? umengReleaseKey : umengDevKey]
    原文作者:张瑞Jerrysher
    原文地址: https://www.jianshu.com/p/dd57aa04e565
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞