gitlab-ci: rework for buildserver-bullseye and easier KVM
This commit is contained in:
parent
6428ef00a5
commit
1ca03ae2dc
|
@ -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,<string name="app_name">.*</string>,<string name="app_name">F-Nightly</string>,'
|
||||
app/src/main/res/values*/strings.xml
|
||||
|
|
Loading…
Reference in New Issue