From b9fa60fd74597aa6a4cce0975ea3e6c63d73326f Mon Sep 17 00:00:00 2001 From: Pascal Hartig Date: Tue, 10 Apr 2018 05:00:07 -0700 Subject: [PATCH] Re-enable matrix build for Java snapshots Summary: Change the travis platform to Java and install Node via nvm instead. This manually reinstalls buck and then publishes a snapshot if it builds and tests correctly. Reviewed By: emilsjolander, danielbuechele Differential Revision: D7567862 fbshipit-source-id: fabdbbb13117ab8ead4eb9f10402a71d30f29c12 --- .travis.yml | 55 +++++++++++++++++++++++++++++++++++----- scripts/android-setup.sh | 37 ++++++++++++++------------- 2 files changed, 68 insertions(+), 24 deletions(-) diff --git a/.travis.yml b/.travis.yml index ea56c3ed..9f7c4a14 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,16 +1,58 @@ -language: node_js -node_js: - - "8" +language: java + +env: + - TARGET: website + - TARGET: android install: - cd website - yarn --ignore-scripts - cd .. +cache: + directories: + - $HOME/buck + - $HOME/.gradle + +before_install: + - | + if [[ -n "$encrypted_d27e803291ff_iv" ]]; then + openssl aes-256-cbc -K $encrypted_d27e803291ff_key -iv $encrypted_d27e803291ff_iv -in scripts/setup-keys.enc -d >> gradle.properties; + fi + # Android + - | + if [[ $TARGET = "android" ]]; then + pushd $HOME + git clone --depth 1 https://github.com/facebook/buck.git + cd buck + ant + popd + export PATH=$PATH:$HOME/buck/bin/ + buck --version + export TERMINAL=dumb + source scripts/android-setup.sh && installAndroidSDK + export ANDROID_SDK=$ANDROID_HOME + export ANDROID_NDK_REPOSITORY=$HOME/android-ndk + export ANDROID_NDK_HOME=$ANDROID_NDK_REPOSITORY/android-ndk-r15c + fi + # Website + - | + if [[ $TARGET = "website" ]]; then + nvm install 8 + nvm use 8 + fi + script: -- cd website -- yarn build -- cd .. + - | + if [[ $TARGET = "android" ]]; then + ./gradlew testDebugUnit && scripts/publish-snapshot.sh + fi + - | + if [[ $TARGET = "website" ]]; then + pushd website + yarn build + popd + fi deploy: provider: pages @@ -23,3 +65,4 @@ deploy: keep-history: true on: branch: master + condition: $TARGET = website diff --git a/scripts/android-setup.sh b/scripts/android-setup.sh index fd45ab38..abc102a1 100644 --- a/scripts/android-setup.sh +++ b/scripts/android-setup.sh @@ -1,7 +1,8 @@ +set -e + function download() { - echo "Downloading '$1' to '$2' ..." if hash curl 2>/dev/null; then - curl --retry 10 -L -o "$2" "$1" + curl -s -L -o "$2" "$1" elif hash wget 2>/dev/null; then wget -O "$2" "$1" else @@ -12,38 +13,38 @@ function download() { function installsdk() { PROXY_ARGS="" - if [[ ! -z "$https_proxy" ]]; then - PROXY_HOST="$(cut -d : "$https_proxy" -f 1,1)" - PROXY_PORT="$(cut -d : "$https_proxy" -f 2,2)" + if [[ ! -z "$HTTPS_PROXY" ]]; then + PROXY_HOST="$(echo $HTTPS_PROXY | cut -d : -f 1,1)" + PROXY_PORT="$(echo $HTTPS_PROXY | cut -d : -f 2,2)" PROXY_ARGS="--proxy=http --proxy_host=$PROXY_HOST --proxy_port=$PROXY_PORT" fi - yes | "$ANDROID_HOME/tools/bin/sdkmanager" $PROXY_ARGS $@ + echo y | "$ANDROID_HOME"/tools/bin/sdkmanager $PROXY_ARGS "$@" } function installAndroidSDK { - export ANDROID_HOME=$HOME/android-sdk - export ANDROID_NDK_REPOSITORY=$HOME/android-ndk - export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH" - - if [[ ! -f "$ANDROID_HOME/tools/bin/sdkmanager" ]]; then + if [[ ! -d "$HOME/android-sdk" ]]; then TMP=/tmp/sdk$$.zip - download 'https://dl.google.com/android/repository/sdk-tools-darwin-3859397.zip' $TMP - unzip -qod "$ANDROID_HOME" "$TMP" + download 'https://dl.google.com/android/repository/tools_r25.2.3-linux.zip' $TMP + unzip -qod "$HOME/android-sdk" $TMP rm $TMP fi + export ANDROID_NDK_REPOSITORY=$HOME/android-ndk if [[ ! -d "$ANDROID_NDK_REPOSITORY/android-ndk-r15c" ]]; then TMP=/tmp/ndk$$.zip mkdir -p "$ANDROID_NDK_REPOSITORY" - download 'https://dl.google.com/android/repository/android-ndk-r15c-darwin-x86_64.zip' $TMP + download 'https://dl.google.com/android/repository/android-ndk-r15c-linux-x86_64.zip' $TMP unzip -qod "$ANDROID_NDK_REPOSITORY" "$TMP" rm $TMP fi - mkdir -p "$ANDROID_HOME/licenses/" - echo > "$ANDROID_HOME/licenses/android-sdk-license" - echo -n d56f5187479451eabf01fb78af6dfcb131a6481e >> "$ANDROID_HOME/licenses/android-sdk-license" + export ANDROID_HOME=$HOME/android-sdk + export PATH="$ANDROID_HOME/platform-tools:$ANDROID_HOME/tools:$ANDROID_HOME/tools/bin:$PATH" - installsdk 'build-tools;26.0.2' 'platform-tools' 'platforms;android-23' 'platforms;android-25' 'extras;android;m2repository' + mkdir -p $ANDROID_HOME/licenses/ + echo > $ANDROID_HOME/licenses/android-sdk-license + echo -n d56f5187479451eabf01fb78af6dfcb131a6481e > $ANDROID_HOME/licenses/android-sdk-license + + installsdk 'build-tools;25.0.3' 'build-tools;26.0.2' 'platforms;android-25' 'platforms;android-26' 'ndk-bundle' 'extras;android;m2repository' }