Skip to content

Commit

Permalink
Merge 5176881 into 5930fd4
Browse files Browse the repository at this point in the history
  • Loading branch information
fredoboulo committed Nov 15, 2019
2 parents 5930fd4 + 5176881 commit de617fe
Show file tree
Hide file tree
Showing 12 changed files with 159 additions and 197 deletions.
82 changes: 67 additions & 15 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,65 @@
matrix:
jobs:
include:
- language: bash
dist: bionic
addons:
apt:
packages:
- bridge-utils
- libpulse0
- libvirt-bin
- qemu-kvm
- virtinst
- ubuntu-vm-builder
env:
global:
- API=10
- ABI=x86
before_install:
- export ANDROID_HOME=${HOME}/android-sdk
- export ANDROID_TOOLS_URL="https://dl.google.com/android/repository/sdk-tools-linux-4333796.zip"
- export GRAVIS="https://raw.githubusercontent.com/DanySK/Gravis-CI/master/"
- export TOOLS=${ANDROID_HOME}/tools
- export PATH=${ANDROID_HOME}:${ANDROID_HOME}/emulator:${TOOLS}:${TOOLS}/bin:${ANDROID_HOME}/platform-tools:${PATH}
# install KVM
- sudo adduser $USER libvirt
- sudo adduser $USER kvm
# install Java
- curl "${GRAVIS}.install-jdk-travis.sh" --output ~/.install-jdk-travis.sh
- export JDK="1.8"
- source ~/.install-jdk-travis.sh
# install Android
- wget -q "${ANDROID_TOOLS_URL}" -O android-sdk-tools.zip
- unzip -q android-sdk-tools.zip -d ${ANDROID_HOME}
- rm android-sdk-tools.zip
# Avoid harmless sdk manager warning
- echo 'count=0' > ~/.android/repositories.cfg
- yes | sdkmanager --licenses >/dev/null
# Install needed tools and images for Android
- echo y | sdkmanager --no_https "platform-tools" > /dev/null
- echo y | sdkmanager --no_https "tools" > /dev/null
- echo y | sdkmanager --no_https "build-tools;28.0.3" > /dev/null
- echo y | sdkmanager --no_https "platforms;android-28" > /dev/null
- echo y | sdkmanager --no_https --channel=4 "emulator" > /dev/null
- ./scripts/prepare-android.sh
install:
# Install Android target
- echo y | sdkmanager --no_https "system-images;android-10;default;x86" > /dev/null
- echo y | sdkmanager --no_https "platforms;android-10" > /dev/null
# Create emulated device
- echo no | avdmanager create avd --force -n test -k "system-images;android-10;default;x86" -c 10M
- sudo -E sudo -u $USER -E bash -c "${ANDROID_HOME}/emulator/emulator -avd test -no-boot-anim -no-snapshot -no-audio -no-window -qemu -m 2048 &"
# Build the project while emulator is starting
- cd src/android/Jeromq
- ./gradlew build > /dev/null
# Wait for emulator to be ready
- ./scripts/android-wait-for-emulator.sh
- adb shell settings put global window_animation_scale 0 &
- adb shell settings put global transition_animation_scale 0 &
- adb shell settings put global animator_duration_scale 0 &
- adb shell input keyevent 82 &
script:
- ./gradlew connectedCheck --stacktrace
- language: java
jdk: openjdk8

Expand All @@ -15,23 +75,15 @@ matrix:
- language: java
jdk: oraclejdk12

- language: android
jdk: openjdk8
android:
components:
- tools
- platform-tools

- language: android
jdk: oraclejdk8
android:
components:
- tools
- platform-tools

before_cache:
- rm -f $HOME/.gradle/caches/modules-2/modules-2.lock
- rm -fr $HOME/.gradle/caches/*/plugin-resolution/
cache:
directories:
- $HOME/.m2
- $HOME/.gradle/caches/
- $HOME/.gradle/wrapper/
- $HOME/.android/build-cache

install: mvn install --quiet -DskipTests=true -Dgpg.skip=true

Expand Down
15 changes: 8 additions & 7 deletions scripts/prepare-android.sh
Original file line number Diff line number Diff line change
@@ -1,17 +1,18 @@
#!/bin/bash
set -ev

ANDROID_ROOT=src/android/Jeromq/app/src/
ANDROID_ROOT=src/android/Jeromq
ANDROID_SRC=$ANDROID_ROOT/app/src

rm -fr $ANDROID_ROOT/main/java/{org,zmq}
rm -fr $ANDROID_ROOT/androidTest/java/{org,zmq}
mkdir -p $ANDROID_SRC/{main,androidTest}/java
rm -fr $ANDROID_SRC/{main,androidTest}/java/{org,zmq}

cp -R src/main/java/{org,zmq} $ANDROID_ROOT/main/java
cp -R src/test/java/{org,zmq} $ANDROID_ROOT/androidTest/java
cp -R src/main/java/{org,zmq} $ANDROID_SRC/main/java
cp -R src/test/java/{org,zmq} $ANDROID_SRC/androidTest/java

cp $ANDROID_ROOT/TemporaryFolderFinder.java $ANDROID_ROOT/androidTest/java/org/zeromq
cp $ANDROID_SRC/TemporaryFolderFinder.java $ANDROID_SRC/androidTest/java/org/zeromq

grep -rl zmq.util.AndroidProblematic $ANDROID_ROOT/androidTest/java | xargs -I @@ bash -c '{\
grep -rl zmq.util.AndroidProblematic $ANDROID_SRC/androidTest/java | xargs -I @@ bash -c '{\
sed -i 's/zmq.util.AndroidProblematic/org.junit.Ignore/g' @@ ;\
sed -i 's/@AndroidProblematic/@Ignore/g' @@ ;\
}'
Expand Down
9 changes: 6 additions & 3 deletions src/android/Jeromq/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,18 +10,21 @@ android {
versionCode 1
versionName "1.0"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
testInstrumentationRunnerArguments notAnnotation: 'zmq.util.AndroidProblematic'
}
compileOptions {
sourceCompatibility = 1.8
targetCompatibility = 1.8
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
buildTypes {
release {
minifyEnabled false
}
}
lintOptions {
abortOnError false
}
testOptions {
animationsDisabled true
execution 'ANDROIDX_TEST_ORCHESTRATOR'
}
}
Expand Down
Binary file not shown.
25 changes: 25 additions & 0 deletions src/android/Jeromq/scripts/android-wait-for-emulator.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
#!/bin/bash

# Originally written by Ralf Kistner <ralf@embarkmobile.com>, but placed in the public domain

set +e

bootanim=""
failcounter=0
timeout_in_sec=600 # 10 minutes

until [[ "$bootanim" =~ "stopped" ]]; do
bootanim=`adb -e shell getprop init.svc.bootanim 2>&1 &`
if [[ "$bootanim" =~ "device not found" || "$bootanim" =~ "device offline"
|| "$bootanim" =~ "running" || "$bootanim" =~ "error: no emulators found" ]]; then
let "failcounter += 1"
echo "Waiting for emulator to start"
if [[ $failcounter -gt timeout_in_sec ]]; then
echo "Timeout ($timeout_in_sec seconds) reached; failed to start emulator"
exit 1
fi
fi
sleep 1
done

echo "Emulator is ready"
6 changes: 5 additions & 1 deletion src/main/java/zmq/Options.java
Original file line number Diff line number Diff line change
Expand Up @@ -571,7 +571,11 @@ private SelectorProviderChooser chooser(Class<?> clazz)
catch (ClassCastException e) {
throw new IllegalArgumentException(e);
}
catch (InstantiationException | IllegalAccessException e) {
catch (InstantiationException e) {
throw new ZError.InstantiationException(e);
}
// Android compatibility: multi-catch is only available from API 19
catch (IllegalAccessException e) {
throw new ZError.InstantiationException(e);
}
}
Expand Down

0 comments on commit de617fe

Please sign in to comment.