如何给你github上的Android项目添加travis-ci

首先大家可能会问:Travis是什么?可以帮助大家做什么?
Travis是一个免费的集成测试系统,可以帮助大家做集成测试。这个只是最浅显的回答。今天我们就一起看看如何在Android项目中运用Travis

两个功能:

  • 自动编译提交的代码,测试最新提交的代码是否可以编译通过
  • 自动在模拟器安装应用,测试应用是否可以正常安装运行

首先登陆 travis

Travis 的配置文件名是 .travis.yml,放在项目的根据目录里面,下面是一个简单的例子:

language: android
android:
  components:
    # Uncomment the lines below if you want to
    # use the latest revision of Android SDK Tools
    # - platform-tools
    # - tools

    # The BuildTools version used by your project
    - build-tools-19.1.0

    # The SDK version used to compile your project
    - android-22

    # Additional components
    - extra-google-google_play_services
    - extra-google-m2repository
    - extra-android-m2repository
    - addon-google_apis-google-19

    # Specify at least one system image,
    # if you need to run emulator(s) during your tests
    - sys-img-armeabi-v7a-android-22
    - sys-img-x86-android-17

Travis的配置文件是使用 yml 一种标记语言编写的,如果有想了解的,可以自行搜索。
下面我们详细讲解上面脚本里面的元素都是代表什么意思。

  • 首先设置我们的语言,现在是Android应用。
language: android
  • 后面设置我们需用到Android里面相关的编译模块
android:
  components:
    # 使用 #来写注释
    #如果需要用到tools里面相关的命令,如下添加,我认为默认添加进去就可以了
    - tools
    # platform-tools有两种添加方式,带版本号就是指定版本,如果不指定版本,使用最新版本的,
    # 个人感觉最好使用项目里面相同的版本
    - platform-tools-19.1.0
    # Android sdk版本,如果项目里面有多个子项目,并且使用了多个版本的,这里可以指定
    - android-22
    - android-23
    # google map
    - addon-google_apis-google-19
    # extra android support
    - extra-android-m2repository
    - extra-android-support
    # google play service
    - extra-google-google_play_services
    # google addon extra
    - addon-google_apis-google-19
    # 或者全家桶的意思吧
    - extra
    # 如果你需要使用模拟器测试编译出来的安装包,你需要最少添加一个系统镜像配置
    - sys-img-armeabi-v7a-android-22
    - sys-img-x86-android-17
  • 默认travis 会接受所有的 Licenses,但是你也可以定义自己的白名单
language: android
android:
  components:
    - build-tools-20.0.0
    - android-L
    - add-on
    - extra
  licenses:
    - 'android-sdk-preview-license-52d11cd2'
    - 'android-sdk-license-.+'
    - 'google-gdk-license-.+'
  • 添加模拟器
# Emulator Management: Create, Start and Wait
before_script:
  # 修改你的 gradlew的权限,默认gradlew没有权限执行的
  - chmod +x gradlew

  - echo no | android create avd --force -n test -t android-22 --abi armeabi-v7a
  - emulator -avd test -no-audio -no-window &
  - android-wait-for-emulator
  - adb shell input keyevent 82 &
  • 构建的时候,你肯定希望有一个干净的系统,所有需要清除缓存
before_cache:
  - rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
cache:
  directories:
    - $HOME/.gradle/caches/
    - $HOME/.gradle/wrapper/
  • 如果你需要多个版本的jdk
jdk:
  - oraclejdk8
  - oraclejdk7
  - openjdk6

我现在项目里面的配置

谢谢阅读到这里,觉得好的点个赞吧 _

推荐阅读更多精彩内容