ci: Attempt to stabilize builds on Travis-CI

Change-Id: Ie13b4509504ffdc442200a38ac6437ed44c5b73a
2 files changed
tree: 01bac6d29a0c2453a3dff231d3593c81df9d881d
  1. .jenkins.d/
  2. .vagrant/
  3. app/
  4. .gitignore
  5. .gitmodules
  6. .travis.yml
  7. build.gradle
  8. README.md
  9. settings.gradle
README.md

NFD on Android

Build Status

Prerequisites

To compile code, the following is necessary

If version 10.1.0 is used, then the following patch needs to be applied:

find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \;

Example script for Ubuntu 14.04 to get all dependencies, download SDK and NDK:

sudo apt-get install -y build-essential git openjdk-7-jdk unzip
wget -q https://www.crystax.net/download/crystax-ndk-10.1.0-linux-x86_64.tar.bz2
tar jxf crystax-ndk-10.1.0-linux-x86_64.tar.bz2
find crystax-ndk-10.1.0 -name byteswap.h -exec sed -i -e 's/ swap/ bswap/g' {} \;

wget -q http://dl.google.com/android/android-sdk_r24.0.2-linux.tgz
tar zxf android-sdk_r24.0.2-linux.tgz
rm android-sdk_r24.0.2-linux.tgz

echo y |  ./android-sdk-linux/tools/android update sdk -a -u -t "android-19"

wget -q https://services.gradle.org/distributions/gradle-2.2.1-bin.zip
unzip gradle-2.2.1-bin.zip

SDK_TOOLS_VERSION=24.0.2
BUILD_TOOLS_VERSION=21.1.2
COMPILE_SDK_VERSION=21

(sudo dpkg --add-architecture i386; sudo apt-get update -qq; sudo apt-get install -y libc6:i386 libncurses5:i386 libstdc++6:i386 zlib1g:i386)

export ANDROID_HOME=`pwd`/android-sdk-linux
export PATH=${PATH}:${ANDROID_HOME}/tools:${ANDROID_HOME}/platform-tools

echo "y" | ~/android-sdk-linux/tools/android update sdk --filter platform-tools,build-tools-$BUILD_TOOLS_VERSION,android-$COMPILE_SDK_VERSION,extra-android-support,extra-android-m2repository,extra-google-m2repository --no-ui --all --force

echo "y" | ~/android-sdk-linux/tools/android update sdk --filter "android-19" --no-ui --all --force

Building

git clone --recursive http://gerrit.named-data.net/NFD-android
echo sdk.dir=`pwd`/android-sdk-linux > NFD-android/local.properties
echo ndk.dir=`pwd`/crystax-ndk-10.1.0 >> NFD-android/local.properties
cd NFD-android

../gradle/gradle-2.2.1/bin/gradle assembleRelease

Setting up environment using Vagrant

The development setup can be set up with Vagrant and scripts provided in .vagrant/ folder. After vagrant command-line is installed, the following will create VM environment and fetch all necessary dependencies:

cd .vagrant
vagrant up

Refer to vagrant documentation for more information.