diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 7d3c4aae1..7980d12d6 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -3,15 +3,21 @@ stages:
- deploy
.base:
- image: registry.gitlab.com/fdroid/ci-images-client:latest
+ image: registry.gitlab.com/fdroid/fdroidserver:buildserver-bullseye
before_script:
+ - test -e /etc/apt/sources.list.d/bullseye-backports.list
+ || echo "deb http://deb.debian.org/debian bullseye-backports main" >> /etc/apt/sources.list
+ - apt update
+ - apt-get -qy install -t bullseye-backports --no-install-recommends git sdkmanager
+
+ - test -n "$ANDROID_HOME" || source /etc/profile.d/bsenv.sh
+
+ - export cmdline_tools_latest="$ANDROID_HOME/cmdline-tools/latest/bin"
+ - test -e $cmdline_tools_latest && export PATH="$cmdline_tools_latest:$PATH"
+
- export GRADLE_USER_HOME=$PWD/.gradle
- export ANDROID_COMPILE_SDK=`sed -n 's,.*compileSdkVersion\s*\([0-9][0-9]*\).*,\1,p' app/build.gradle`
- - alias sdkmanager="sdkmanager --no_https"
- echo y | sdkmanager "platforms;android-${ANDROID_COMPILE_SDK}" > /dev/null
- # limit RAM usage for all gradle runs
- - export maxmem=$(expr $(sed -n 's,^MemAvailable:[^0-9]*\([0-9][0-9]*\)[^0-9]*$,\1,p' /proc/meminfo) / 1024 / 2 / 1024 \* 1024)
- - printf "\norg.gradle.jvmargs=-Xmx${maxmem}m -XX:MaxPermSize=${maxmem}m\norg.gradle.daemon=false\norg.gradle.parallel=false\n" >> gradle.properties
after_script:
# this file changes every time but should not be cached
- rm -f $GRADLE_USER_HOME/caches/modules-2/modules-2.lock
@@ -66,10 +72,6 @@ errorprone:
extends: .base
stage: test
script:
- - apt-get update
- - apt-get install -t stretch-backports openjdk-11-jdk-headless
- - update-java-alternatives --set java-1.11.0-openjdk-amd64
- - export JAVA_HOME=/usr/lib/jvm/java-1.11.0-openjdk-amd64
- cat config/errorprone.gradle >> app/build.gradle
- ./gradlew -Dorg.gradle.dependency.verification=lenient assembleDebug
@@ -89,7 +91,6 @@ errorprone:
- export AVD_PACKAGE="system-images;android-${AVD_SDK};${AVD_TAG};${AVD_ARCH}"
- echo $AVD_PACKAGE
- - alias sdkmanager
- ls -l ~/.android
- adb start-server
@@ -104,10 +105,38 @@ errorprone:
fi
- ./gradlew connectedFullDebugAndroidTest $FLAG
-no-accel 22 default x86:
- <<: *test-template
- <<: *connected-template
+.kvm-connected-template: &kvm-connected-template
+ extends: .base
+ image: briar/ci-image-android-emulator:latest
+ tags:
+ - kvm
+ script:
+ - ./gradlew assembleFullDebug
+ - export AVD_SDK=`echo $CI_JOB_NAME | awk '{print $2}'`
+ - export AVD_TAG=`echo $CI_JOB_NAME | awk '{print $3}'`
+ - export AVD_ARCH=`echo $CI_JOB_NAME | awk '{print $4}'`
+ - export AVD_PACKAGE="system-images;android-${AVD_SDK};${AVD_TAG};${AVD_ARCH}"
+ - echo $AVD_PACKAGE
+ - $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager --verbose delete avd --name "$NAME_AVD"
+ - export AVD="$AVD_PACKAGE"
+ - echo y | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --install "$AVD"
+ - echo no | $ANDROID_HOME/cmdline-tools/latest/bin/avdmanager --verbose create avd --name "$NAME_AVD" --package "$AVD" --device "pixel"
+ - start-emulator.sh
+ - ./gradlew installFullDebug
+ - adb shell am start -n org.fdroid.fdroid.debug/org.fdroid.fdroid.views.main.MainActivity
+ - if [ $AVD_SDK -lt 25 ] || ! emulator -accel-check; then
+ export FLAG=-Pandroid.testInstrumentationRunnerArguments.notAnnotation=androidx.test.filters.LargeTest;
+ fi
+ - ./gradlew connectedFullDebugAndroidTest $FLAG
+
+
+# Since jobs that require KVM need special runners, these jobs are
+# opt-in. To set up your fork to run KVM jobs, go to Settings ->
+# CI/CD -> Variables, and add a variable called RUN_KVM_JOBS with a
+# value of "1". For example, this is for the canonical repo:
+#
+# https://gitlab.com/fdroid/fdroidclient/-/settings/ci_cd#js-cicd-variables-settings
.kvm-template: &kvm-template
tags:
- fdroid
@@ -116,11 +145,13 @@ no-accel 22 default x86:
variables:
- $RUN_KVM_JOBS
<<: *test-template
- <<: *connected-template
+ <<: *kvm-connected-template
-kvm 29 microg x86_64:
+kvm 22 default x86:
+ <<: *test-template
<<: *kvm-template
+
deploy_nightly:
extends: .base
stage: deploy
@@ -128,6 +159,7 @@ deploy_nightly:
- master
script:
- test -z "$DEBUG_KEYSTORE" && exit 0
+ - apt-get install -t bullseye-backports fdroidserver
- sed -i
's,.*,F-Nightly,'
app/src/main/res/values*/strings.xml