Use cache v4 #2
This file contains 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: blueprints | |
on: | |
push: | |
branches: | |
- main | |
- views | |
pull_request: | |
branches: | |
- main | |
- views | |
jobs: | |
build: | |
runs-on: ghcr.io/cirruslabs/ubuntu-runner-amd64:22.04-md | |
timeout-minutes: 45 | |
steps: | |
- 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 11 | |
uses: actions/setup-java@v1 | |
with: | |
java-version: 11 | |
- uses: cirruslabs/cache@v4 | |
with: | |
path: | | |
~/.gradle/caches/modules-* | |
~/.gradle/caches/jars-* | |
~/.gradle/caches/build-cache-* | |
key: gradle-${{ hashFiles('checksum.txt') }} | |
- name: Build project and UnitTest | |
run: ./gradlew assembleDebug compileDebugUnitTestKotlin | |
- name: Spotless | |
# Spotless is not gradle configuration cache compliant. To allow the rest of the build | |
# comply, run spotless with a gradle init script and disable the cache. | |
run: ./gradlew spotlessCheck --init-script gradle/init.gradle.kts --no-configuration-cache | |
- name: Unit tests | |
run: ./gradlew testDebugUnitTest | |
# Needed to accept licenses | |
- name: Setup Android SDK | |
uses: android-actions/setup-android@v2 | |
- name: Compile AndroidTests | |
run: ./gradlew compileDebugAndroidTestKotlin | |
- name: Run instrumentation tests | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 31 | |
arch: x86_64 | |
disable-animations: true | |
disk-size: 2000M | |
heap-size: 600M | |
script: ./gradlew connectedDebugAndroidTest | |
- name: Upload build reports | |
if: always() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: build-reports | |
path: app/build/reports/ | |
- name: Upload all outputs | |
if: failure() | |
uses: actions/upload-artifact@v2 | |
with: | |
name: outputs | |
path: app/build/outputs/ |