Ubuntu部署Jenkins+Gradle+Android 自动化打包环境

步骤

[TOC]

前言

由于项目逐渐Gradle化,需要为测试同学,配置自动化打包环境

相关资源

  • Ubuntu Server(没选用Centos,是因为我对bantu属性)

  • Tomcat

    选择使用8.0.30的,试用9.0.0,存在一些问题,服务器,稳定点比较好

  • Jenkins

    下载war版本的,可以直接在Tomcat中使用

  • java

    采用OpenSDK 1.7,android系统基于这个版本,更加合适

    1
    2
    sudo apt-get install openjdk-7-jdk
    sudo apt-get install openjdk-7-jre
  • Android SDK

    不多介绍

  • Gradle

    由于Jenkins插件中,可以自动下载,所以可以不用下,如果考虑离线,可以配置一下

系统环境配置

  • java
  1. 打开文件

    1
    sudo subl /etc/profile
  2. 修改文件

    1
    2
    3
    4
    export JAVA_HOME=/home/../jdk1.8.0_66  
    export JRE_HOME=${JAVA_HOME}/jre
    export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib
    export PATH=${JAVA_HOME}/bin:$PATH
  • Tomcat
  1. 启动在tomcat/bin/startup.sh中添加

    1
    2
    3
    4
    JAVA_HOME=/home/../jdk1.7.0_80
    PATH=$JAVA_HOME/bin:$PATH
    CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
    TOMCAT_HOME=/home/../apache-tomcat-8.0.30
  2. 启动

    1
    sudo sh startup.sh
  1. 关闭

    1
    sudo sh shutdow.sh
  2. 自启动

    已root身份打开,vim /etc/rc.local
    添加tomcat/bin中的startup.sh全路径

  • jenkens (将下载的war包放在webapps中即可)

Jenkins 配置环境

  • Jenkins 插件

    系统管理-管理插件-可选插件

    • Subversion Plug-in
    • Gradle plugin
    • Android Emulator Plugin
      需要配置Android环境
  • Jenkins 全局配置

    系统管理-系统设置

    • 主目录 (修改Jenkins工作空间的位置)
    • Environment variables (配置全局系统变量)
    • Android (配置 Android SDK root)
    • JDK (配置 JDK root)
    • Gradle

      可以指定本地路径,也可以在线更新

  • 新建项目

    新建-名称-构建一个自由风格的软件项目-OK

    • 源码管理 (Subversion,配置相应的代码路径)
    • 构建

      增加构建步骤-Invoke Gradle script

      1. Invoke Gradle (选择一个Gradle Version)
      2. Tasks
        clean assembleRelease --stacktrace --debug

      增加构建步骤-Execute shell(为了将生成的apk,拷贝到共享文件夹下)
      export BaoFengAndroid_DATE=$(date +"%Y%m%d%H%M") mkdir -p /home/android/share/app/jenkins/BaoFengAndroid/$BaoFengAndroid_DATE cp ${WORKSPACE}/BaofengAndroid/build/outputs/apk/* /home/android/share/app/jenkins/BaoFengAndroid/$BaoFengAndroid_DATE cp -r ${WORKSPACE}/BaofengAndroid/build/outputs/mapping/* /home/android/share/app/jenkins/BaoFengAndroid/$BaoFengAndroid_DATE

build.gradle配置说明

这里只说keystore的安全存储

  1. 通过读取系统环境变量,实现代码和系统环境配置(Ubuntu,Windows…)分离,不指定固定路径
  2. 使用时,只需要在系统中添加环境变量即可

    • build.gradle中

      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
             releaseConfig {
      storeFile file(System.getenv("KeyStorePath"))
      storePassword System.getenv("storePassword")
      keyAlias System.getenv("keyAlias")
      keyPassword System.getenv("keyPassword")
      }
      ```

      * Ubuntu配置 **(文件/etc/profile)**

      ```bash
      export KeyStorePath=...
      export storePassword=...
      export keyAlias=...
      export keyPassword=...
    • Windows中,配置完需要重启

    • Jenkins中环境变量配置

      系统管理-系统设置-全局属性-Environment variables 添加相应的键值对即可

      注意事项

    • 不要提交local.properties文件
    • 文件输出路径 ./BaofengAndroid/build/outputs/apk 文件夹中

      地址

    • 取包地址

      //192.168.85.96/share/app/

    • Jenkins地址

      192.168.85.96:8080/jenkins