Skip to content

Instantly share code, notes, and snippets.

@afontaine
Last active August 29, 2015 13:58
Show Gist options
  • Save afontaine/7dcb7ea58747da55b93b to your computer and use it in GitHub Desktop.
Save afontaine/7dcb7ea58747da55b93b to your computer and use it in GitHub Desktop.

Android and Travis CI

  1. Enable gradle wrapper for your project.
  2. Place wait_for_emulator.sh in a folder named ci, and place .travis.yml in the root of your repository.
  3. Push to Github
  4. Enable Travis CI for your repo.
  5. Watch the continuous integration magic happen.

NOTE: Don't forget to keep .travis.yml up to date with new buildtools, gradle versions, and android versions as you develop.

language: java
jdk: oraclejdk7
env:
matrix:
- ANDROID_SDKS=android-19,sysimg-19 ANDROID_TARGET=android-19 ANDROID_ABI=armeabi-v7a
before_install:
# Install base Android SDK
- sudo apt-get update -qq
- if [ `uname -m` = x86_64 ]; then sudo apt-get install -qq --force-yes libgd2-xpm ia32-libs ia32-libs-multiarch > /dev/null; fi
- wget http://dl.google.com/android/android-sdk_r22.6.2-linux.tgz
- tar xzf android-sdk_r22.6.2-linux.tgz
- export ANDROID_HOME=$PWD/android-sdk-linux
- export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools
# install android build tools
- wget https://dl-ssl.google.com/android/repository/build-tools_r19.0.3-linux.zip
- unzip build-tools_r19.0.3-linux.zip -d $ANDROID_HOME
- mkdir -p $ANDROID_HOME/build-tools/
- mv $ANDROID_HOME/android-4.4.2 $ANDROID_HOME/build-tools/19.0.3
# Install required components.
# For a full list, run `android list sdk -a --extended`
# Note that sysimg-18 downloads the ARM, x86 and MIPS images (we should optimize this).
# Other relevant API's
- echo yes | android update sdk --filter platform-tools --no-ui --force > /dev/null
- echo yes | android update sdk --filter android-18 --no-ui --force > /dev/null
- echo yes | android update sdk --filter android-19 --no-ui --force > /dev/null
- echo yes | android update sdk --filter sysimg-19 --no-ui --force > /dev/null
- echo yes | android update sdk --filter extra-android-support --no-ui --force > /dev/null
- echo yes | android update sdk --filter extra-android-m2repository --no-ui --force > /dev/null
# Create and start emulator
- echo no | android create avd --force -n test -t $ANDROID_TARGET --abi $ANDROID_ABI
- emulator -avd test -no-skin -no-audio -no-window &
# Make gradle wrapper executable
- chmod +x gradlew
before_script:
- chmod +x ci/wait_for_emulator.sh
- ci/wait_for_emulator.sh
- adb shell input keyevent 82 &
script:
- ./gradlew connectedAndroidTest
#!/bin/bash
bootanim=""
failcounter=0
until [[ "$bootanim" =~ "stopped" ]]; do
bootanim=`adb -e shell getprop init.svc.bootanim 2>&1`
echo "$bootanim"
if [[ "$bootanim" =~ "not found" ]]; then
let "failcounter += 1"
if [[ $failcounter -gt 3 ]]; then
echo "Failed to start emulator"
exit 1
fi
fi
sleep 1
done
echo "Done"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment