Skip to content

Update UI tests

Update UI tests #136

Workflow file for this run

name: Run tests
on: [ pull_request ]
jobs:
build:
name: build
runs-on: macos-latest # Needs to be macos for running AVD on Github
env:
SKIP_ICS_OPENVPN_BUILD: >
--build-cache
-x :ics-openvpn-main:configureCMakeRelWithDebInfo[arm64-v8a]
-x :ics-openvpn-main:buildCMakeRelWithDebInfo[arm64-v8a]
-x :ics-openvpn-main:configureCMakeRelWithDebInfo[armeabi-v7a]
-x :ics-openvpn-main:buildCMakeRelWithDebInfo[armeabi-v7a]
-x :ics-openvpn-main:configureCMakeRelWithDebInfo[x86]
-x :ics-openvpn-main:buildCMakeRelWithDebInfo[x86]
-x :ics-openvpn-main:configureCMakeRelWithDebInfo[x86_64]
-x :ics-openvpn-main:buildCMakeRelWithDebInfo[x86_64]
-x :ics-openvpn-main:externalNativeBuildUiOvpn23Release
-x :ics-openvpn-main:packageUiOvpn23ReleaseResources
-x :ics-openvpn-main:compileUiOvpn23ReleaseJavaWithJavac
-x :ics-openvpn-main:configureCMakeDebug[x86_64]
-x :ics-openvpn-main:buildCMakeDebug[x86_64]
-x :ics-openvpn-main:buildCMakeDebug[arm64-v8a]
-x :ics-openvpn-main:buildCMakeDebug[armeabi-v7a]
-x :ics-openvpn-main:buildCMakeDebug[x86]
strategy:
matrix:
api-level: [ 31 ]
steps:
- name: Checkout repository and submodules
uses: actions/checkout@v4
with:
submodules: recursive
- name: Install Java 17
uses: actions/setup-java@v3
with:
distribution: 'temurin'
java-version: '17'
cache: 'gradle'
- name: Cache build
uses: actions/cache@v3
with:
path: |
.gradle
app/build
key: ${{ runner.os }}-${{ matrix.api-level }}-build-${{ github.sha }}
restore-keys: |
${{ runner.os }}-${{ matrix.api-level }}-build-
- name: Cache ics-openvpn build
id: cache-ics-openvpn
uses: actions/cache@v3
with:
path: |
ics-openvpn/.gradle
ics-openvpn/main/build
ics-openvpn/main/.cxx
key: ${{ runner.os }}-${{ matrix.api-level }}-ics_openvpn-${{ hashFiles('.git/modules/ics-openvpn/HEAD') }}
- if: ${{ steps.cache-ics-openvpn.outputs.cache-hit == 'true' }}
# For unknown reason, ninja always rebuilds, so force use of cache
name: Build app with ics-openvpn cache
run: |
./gradlew app:assembleBasicRelease app:assembleBasicDebugAndroidTest \
--warning-mode all $SKIP_ICS_OPENVPN_BUILD
- if: ${{ steps.cache-ics-openvpn.outputs.cache-hit != 'true' }}
name: Build app
run: |
#sudo apt-get update
#sudo apt-get -y install swig ninja-build cmake
./gradlew app:assembleBasicRelease app:assembleBasicDebugAndroidTest \
--build-cache --warning-mode all
# Based on https://github.com/marketplace/actions/android-emulator-runner
- name: AVD cache
uses: actions/cache@v3
id: avd-cache
with:
path: |
~/.android/avd/*
~/.android/adb*
key: avd-${{ matrix.api-level }}
- name: Create AVD and generate snapshot for caching
if: steps.avd-cache.outputs.cache-hit != 'true'
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
force-avd-creation: false
emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
disable-animations: false
script: echo "Generated AVD snapshot for caching."
- name: Run tests
uses: reactivecircus/android-emulator-runner@v2
with:
api-level: ${{ matrix.api-level }}
arch: x86_64
disable-animations: true
disk-size: 4000M
heap-size: 600M
script: ./gradlew connectedCheck -Pandroid.testInstrumentationRunnerArguments.package=nl.eduvpn.app $SKIP_ICS_OPENVPN_BUILD
- name: Store test reports
uses: actions/upload-artifact@v4
with:
name: test-reports
path: '**/build/reports/androidTests'
retention-days: 7
if: always()