[Maintenance] - Update all Libraries + Upgrade to Kotlin 2.0 #540
Workflow file for this run
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: | |
| push: | |
| branches: | |
| - main | |
| pull_request: | |
| concurrency: | |
| group: build-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| build: | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 60 | |
| steps: | |
| - name: Checkout | |
| uses: actions/checkout@v3 | |
| - name: Validate Gradle Wrapper | |
| uses: gradle/wrapper-validation-action@v1 | |
| - name: Copy CI gradle.properties | |
| run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v3 | |
| with: | |
| distribution: 'zulu' | |
| java-version: 21 | |
| - name: Setup Gradle | |
| uses: gradle/gradle-build-action@v2 | |
| - name: Check spotless | |
| run: ./gradlew spotlessCheck --init-script gradle/spotless-init.gradle.kts --no-configuration-cache | |
| - name: Check lint | |
| run: ./gradlew lintDebug | |
| - name: Build debug | |
| run: ./gradlew assembleDebug | |
| - name: Run local tests | |
| run: ./gradlew testDebug | |
| - name: Upload build outputs (APKs) | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-outputs | |
| path: app/build/outputs | |
| - name: Upload build reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: build-reports | |
| path: app/build/reports | |
| androidTest: | |
| needs: build | |
| runs-on: ubuntu-latest | |
| timeout-minutes: 55 | |
| strategy: | |
| matrix: | |
| api-level: [21, 26, 35] | |
| target: [default] | |
| steps: | |
| - name: Delete unnecessary tools 🔧 | |
| uses: jlumbroso/free-disk-space@v1.3.1 | |
| with: | |
| android: false # Don't remove Android tools | |
| tool-cache: true # Remove image tool cache - rm -rf "$AGENT_TOOLSDIRECTORY" | |
| dotnet: true # rm -rf /usr/share/dotnet | |
| haskell: true # rm -rf /opt/ghc... | |
| swap-storage: true # rm -f /mnt/swapfile (4GiB) | |
| docker-images: false # Takes 16s, enable if needed in the future | |
| large-packages: false # includes google-cloud-sdk and it's slow | |
| - name: Enable KVM group perms | |
| run: | | |
| echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules | |
| sudo udevadm control --reload-rules | |
| sudo udevadm trigger --name-match=kvm | |
| ls /dev/kvm | |
| - name: Checkout | |
| uses: actions/checkout@v4 | |
| - name: Copy CI gradle.properties | |
| run: mkdir -p ~/.gradle ; cp .github/ci-gradle.properties ~/.gradle/gradle.properties | |
| - name: Set up JDK 21 | |
| uses: actions/setup-java@v4 | |
| with: | |
| distribution: 'zulu' | |
| java-version: 21 | |
| - name: Setup Gradle | |
| uses: gradle/actions/setup-gradle@v4 | |
| - name: AVD cache | |
| uses: actions/cache@v4 | |
| 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 }} | |
| force-avd-creation: false | |
| emulator-options: -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| disable-animations: false | |
| ram-size: 4096M | |
| disk-size: 8192M | |
| heap-size: 1024M | |
| script: echo "Generated AVD snapshot for caching." | |
| - name: Run instrumentation tests | |
| uses: reactivecircus/android-emulator-runner@v2 | |
| with: | |
| api-level: ${{ matrix.api-level }} | |
| force-avd-creation: false | |
| emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none | |
| arch: x86_64 | |
| disable-animations: true | |
| ram-size: 4096M | |
| disk-size: 8192M | |
| heap-size: 1024M | |
| script: ./gradlew connectedDebugAndroidTest --daemon | |
| - name: Upload test reports | |
| if: always() | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: test-reports-${{ matrix.api-level }} | |
| path: '*/build/reports/androidTests' |