@ -11,45 +11,8 @@ concurrency:
cancel-in-progress : true
jobs:
build:
runs-on : ubuntu-latest
timeout-minutes : 90
steps:
- name : Checkout
uses : actions/checkout@v4
- 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 17
uses : actions/setup-java@v3
with:
distribution : 'zulu'
java-version : 17
- name : Setup Gradle
uses : gradle/gradle-build-action@v2
- name : Check spotless
run : ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache
- name : Build all build type and flavor permutations
run : ./gradlew assemble
- name : Upload build outputs (APKs)
uses : actions/upload-artifact@v3
with:
name : APKs
path : '**/build/outputs/apk/**/*.apk'
- name : Run local tests
run : ./gradlew testDemoDebug testProdDebug :lint:test
test:
test_and_apk:
name : "Local tests and APKs"
runs-on : ubuntu-latest
permissions:
@ -76,6 +39,9 @@ jobs:
- name : Setup Gradle
uses : gradle/gradle-build-action@v2
- name : Check spotless
run : ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache
- name : Run all local screenshot tests (Roborazzi)
id : screenshotsverify
continue-on-error : true
@ -106,7 +72,16 @@ jobs:
# Run local tests after screenshot tests to avoid wrong UP-TO-DATE. TODO: Ignore screenshots.
- name : Run local tests
if : always()
run : ./gradlew testDemoDebug testProdDebug
run : ./gradlew testDemoDebug testProdDebug :lint:test
- name : Build all build type and flavor permutations
run : ./gradlew assemble
- name : Upload build outputs (APKs)
uses : actions/upload-artifact@v3
with:
name : APKs
path : '**/build/outputs/apk/**/*.apk'
- name : Upload test results (XML)
if : always()
@ -129,7 +104,6 @@ jobs:
run : ./gradlew :app:checkProdReleaseBadging
androidTest:
needs : build
runs-on : macOS-latest # enables hardware acceleration in the virtual machine
timeout-minutes : 55
strategy:
@ -152,8 +126,8 @@ jobs:
- name : Setup Gradle
uses : gradle/gradle-build-action@v2
- name : Build AndroidTest apps
run : ./gradlew packageDemoDebug packageDemoDebugAndroidTest --daemon
- name : Build projects before running emulator
run : ./gradlew packageDemoDebug packageDemoDebugAndroidTest
- name : Run instrumentation tests
uses : reactivecircus/android-emulator-runner@v2