diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 36e5572dd..57c7e7e3d 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -16,11 +16,24 @@ before_script: - echo y | android -s update sdk --no-ui -a -t platform-tools,tools,build-tools-23.0.0,android-22,extra-android-m2repository - export PATH="$ANDROID_HOME/platform-tools:$PATH" - export PATH="$ANDROID_HOME/build-tools/23.0.0:$PATH" + - echo " == Installing emulator system images" + - echo y | android -s update sdk --no-ui -a -t android-10 - echo " == Installing Gradle" - wget -q -O gradle.zip https://services.gradle.org/distributions/gradle-2.4-bin.zip - unzip -q gradle.zip - export PATH="$PWD/gradle-2.4/bin:$PATH" -build: +test: script: - - gradle build + - cd F-Droid + - echo " == Building via gradle" + - gradle clean assemble + - echo " == Setting up Android 2.3.7 emulator" + - echo no | android create avd --force -n fcl-test -t android-10 -b armeabi + - echo " == Starting Android 2.3.7 emulator" + - emulator -force-32bit -avd fcl-test -no-skin -no-audio -no-window & + - ./tools/wait-for-emulator + - echo " == Running Android tests" + - gradle connectedAndroidTest + - echo " == Stopping Android 2.3.7 emulator" + - kill $! diff --git a/F-Droid/tools/wait-for-emulator b/F-Droid/tools/wait-for-emulator new file mode 100755 index 000000000..1bb0defdb --- /dev/null +++ b/F-Droid/tools/wait-for-emulator @@ -0,0 +1,43 @@ +#!/bin/bash + +sec=0 +timeout=360 + +err() { + echo "$@" + exit 1 +} + +explain() { + if [[ "$1" =~ "not found" ]]; then + printf "device not found" + elif [[ "$1" =~ "offline" ]]; then + printf "device offline" + elif [[ "$1" =~ "running" ]]; then + printf "booting" + else + printf "unknown: $1" + fi +} + +while true; do + if [[ $sec -ge $timeout ]]; then + err "Timeout ($timeout seconds) reached - Failed to start emulator" + fi + out=$(adb -e shell getprop init.svc.bootanim 2>&1) + if [[ "$out" =~ "command not found" ]]; then + err "$out" + fi + if [[ "$out" =~ "stopped" ]]; then + break + fi + exp=$(explain "$out") + let "r = sec % 5" + if [[ $r -eq 0 ]]; then + echo "Waiting for emulator to start: $exp" + fi + sleep 1 + let "sec++" +done + +echo "Emulator is ready"