blob: cdf76aba95f174ffffe0d8de9f640a71d31daea7 [file] [log] [blame]
language: android
matrix:
include:
- os: linux
jdk: oraclejdk8
dist: trusty
addons:
apt:
packages:
- ant
env: CI_ACTION=build
# ANDROID_SDK is required for build.
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- os: linux
jdk: openjdk8
dist: trusty
addons:
apt:
packages:
- ant
env: CI_ACTION=build
# ANDROID_SDK is required for build.
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- os: linux
jdk: openjdk8
dist: trusty
addons:
apt:
packages:
- ant
- groovy
env: CI_ACTION=unit GROOVY_HOME=/usr/share/groovy/
# ANDROID_SDK is required for build.
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- os: linux
jdk: openjdk8
dist: trusty
addons:
apt:
packages:
- ant
env: CI_ACTION=ant
# ANDROID_HOME required for javadoc verification.
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- os: linux
jdk: openjdk8
dist: trusty
addons:
apt:
packages:
- ant
- groovy
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# Haskell tests require GHC (and at least version 7.6).
- ghc
# base ghc package does not include dynamic libraries
# https://stackoverflow.com/a/11711501/1548477
- ghc-dynamic
- ghc-haddock
env: CI_ACTION=integration GROOVY_HOME=/usr/share/groovy/
# ANDROID_SDK is required for build.
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- os: linux
jdk: openjdk8
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- addon-google_apis-google-23
- android-21
- addon-google_apis-google-21
- extra-android-support
dist: trusty
addons:
apt:
packages:
- ant
# Travis is on 64bit and there will be a cryptic aapt error w/o these libs.
# For native code tests, we need some additional libraries if we are in a 64-bit environment.
- libgd2-xpm-dev
- libc6:i386
- libstdc++6:i386
- zlib1g:i386
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# Haskell tests require GHC (and at least version 7.6).
- ghc
# base ghc package does not include dynamic libraries
# https://stackoverflow.com/a/11711501/1548477
- ghc-dynamic
- ghc-haddock
# https://docs.travis-ci.com/user/caching#Things-not-to-cache
# https://docs.travis-ci.com/user/caching#Explicitly-disabling-caching
cache:
directories:
- $HOME/ndk_cache
env: CI_ACTION=heavy_integration
- os: linux
jdk: openjdk8
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- addon-google_apis-google-23
- android-21
- addon-google_apis-google-21
- extra-android-support
dist: trusty
addons:
apt:
packages:
- ant
# Travis is on 64bit and there will be a cryptic aapt error w/o these libs.
# For native code tests, we need some additional libraries if we are in a 64-bit environment.
- libgd2-xpm-dev
- libc6:i386
- libstdc++6:i386
- zlib1g:i386
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# https://docs.travis-ci.com/user/caching#Things-not-to-cache
# https://docs.travis-ci.com/user/caching#Explicitly-disabling-caching
cache:
directories:
- $HOME/ndk_cache
env: CI_ACTION=android_ndk_15
- os: linux
jdk: openjdk8
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- addon-google_apis-google-23
- android-21
- addon-google_apis-google-21
- extra-android-support
dist: trusty
addons:
apt:
packages:
- ant
# Travis is on 64bit and there will be a cryptic aapt error w/o these libs.
# For native code tests, we need some additional libraries if we are in a 64-bit environment.
- libgd2-xpm-dev
- libc6:i386
- libstdc++6:i386
- zlib1g:i386
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# https://docs.travis-ci.com/user/caching#Things-not-to-cache
# https://docs.travis-ci.com/user/caching#Explicitly-disabling-caching
cache:
directories:
- $HOME/ndk_cache
env: CI_ACTION=android_ndk_16
- os: linux
jdk: openjdk8
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- addon-google_apis-google-23
- android-21
- addon-google_apis-google-21
- extra-android-support
dist: trusty
addons:
apt:
packages:
- ant
# Travis is on 64bit and there will be a cryptic aapt error w/o these libs.
# For native code tests, we need some additional libraries if we are in a 64-bit environment.
- libgd2-xpm-dev
- libc6:i386
- libstdc++6:i386
- zlib1g:i386
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# https://docs.travis-ci.com/user/caching#Things-not-to-cache
# https://docs.travis-ci.com/user/caching#Explicitly-disabling-caching
cache:
directories:
- $HOME/ndk_cache
env: CI_ACTION=android_ndk_17
- os: linux
jdk: openjdk8
android:
components:
- tools
- platform-tools
- build-tools-23.0.2
- android-23
- addon-google_apis-google-23
- android-21
- addon-google_apis-google-21
- extra-android-support
dist: trusty
addons:
apt:
packages:
- ant
# Travis is on 64bit and there will be a cryptic aapt error w/o these libs.
# For native code tests, we need some additional libraries if we are in a 64-bit environment.
- libgd2-xpm-dev
- libc6:i386
- libstdc++6:i386
- zlib1g:i386
# We rely on -gno-record-gcc-switches which was added in 4.7.
- gcc
- g++
# https://docs.travis-ci.com/user/caching#Things-not-to-cache
# https://docs.travis-ci.com/user/caching#Explicitly-disabling-caching
cache:
directories:
- $HOME/ndk_cache
env: CI_ACTION=android_ndk_18
# Enable container-based architecture.
sudo: false
before_install:
# Install ant on MacOS
- if \[ ${TRAVIS_OS_NAME} == "osx" \]; then brew install ant watchman; fi
# Limit Ant's and Buck's memory usage to avoid the OOM killer.
- export ANT_OPTS='-Xmx1000m'
- echo '-Xmx500m' > .buckjavaargs.local
# Set up the Android environment. Only for Linux.
- if \[ ${TRAVIS_OS_NAME} == "linux" \] && \[ "${CI_ACTION}" == "heavy_integration" \]; then
export NDK_HOME="${HOME}/android-ndk-linux" ;
./scripts/travisci_install_android_ndk.sh ;
fi
- if \[ ${TRAVIS_OS_NAME} == "linux" \] && \[ "${CI_ACTION}" == "android_ndk_15" \]; then
export NDK_HOME="${HOME}/android-ndk-linux" ;
./scripts/travisci_unzip_android_ndk.sh android-ndk-r15c ;
fi
- if \[ ${TRAVIS_OS_NAME} == "linux" \] && \[ "${CI_ACTION}" == "android_ndk_16" \]; then
export NDK_HOME="${HOME}/android-ndk-linux" ;
./scripts/travisci_unzip_android_ndk.sh android-ndk-r16b ;
fi
- if \[ ${TRAVIS_OS_NAME} == "linux" \] && \[ "${CI_ACTION}" == "android_ndk_17" \]; then
export NDK_HOME="${HOME}/android-ndk-linux" ;
./scripts/travisci_unzip_android_ndk.sh android-ndk-r17b ;
fi
- if \[ ${TRAVIS_OS_NAME} == "linux" \] && \[ "${CI_ACTION}" == "android_ndk_18" \]; then
export NDK_HOME="${HOME}/android-ndk-linux" ;
./scripts/travisci_unzip_android_ndk.sh android-ndk-r18b ;
fi
# Install go 1.10.x, which generates a different .c file name from cgo than previous versions
- eval "$(gimme 1.10.1)"
- echo -e "[go]\n root = ${GOROOT}" >> .buckconfig.local
# Buck dependencies are checked in, so no need to download dependencies
install: true
notifications:
slack:
rooms:
secure: SYKQV9DT55kHf5Mpe6g5a3NmGXJb5E7kWiLulRp+EmKDIhf3lVmxGbx4Yr/TKZixbNILsPzhhiB56V0H+0mAgMpygVXaq4M9eSHKLljJEmEdeLKmQaRuOUikMOkpLsHw/epvmqrsvlb3yVpsJZZhhHmi9B0oQc0AnjpL/qLBaZE=
# Send Travis CI notifications to internal sytems like Phabricator.
webhooks: https://code.facebook.com/travis/webhook/
script:
- ./scripts/travisci_run.sh