Android route overview #1078
Workflow file for this run
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: Android CI | |
on: | |
push: | |
branches: [ main ] | |
pull_request: | |
branches: [ main ] | |
jobs: | |
build: | |
runs-on: ubuntu-latest | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-android-build | |
cancel-in-progress: true | |
permissions: | |
contents: write # To auto-commit ktfmtFormat changes | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
working-directory: android | |
- name: Install cargo-ndk | |
run: cargo install cargo-ndk | |
- name: Touch local.properties (required for build) | |
run: echo 'stadiaApiKey=' > local.properties | |
working-directory: android | |
- name: Run ktfmtFormat | |
run: ./gradlew ktfmtFormat | |
working-directory: android | |
- name: Commit changed Kotlin source (it is easy to forget ktfmtFormat) | |
uses: stefanzweifel/git-auto-commit-action@v5 | |
with: | |
file_pattern: 'android/**/*.kt' | |
- name: Build with Gradle | |
run: ./gradlew build | |
working-directory: android | |
test: | |
runs-on: ubuntu-latest | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-android-test | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
packages: read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
working-directory: android | |
- name: Install cargo-ndk | |
run: cargo install cargo-ndk | |
- name: Touch local.properties (required for cargo-ndk) | |
run: echo 'stadiaApiKey=' > local.properties | |
working-directory: android | |
- name: Unit test | |
run: ./gradlew test | |
working-directory: android | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
if: success() || failure() | |
with: | |
name: test-reports | |
path: | | |
android/**/build/reports | |
retention-days: 5 | |
verify-snapshots: | |
runs-on: ubuntu-latest | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-android-snapshots | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
packages: read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
working-directory: android | |
- name: Install cargo-ndk | |
run: cargo install cargo-ndk | |
- name: Touch local.properties (required for cargo-ndk) | |
run: echo 'stadiaApiKey=' > local.properties | |
working-directory: android | |
- name: Verify snapshots | |
run: ./gradlew verifyPaparazziDebug | |
working-directory: android | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
if: success() || failure() | |
with: | |
name: snapshot-reports | |
path: | | |
android/**/build/reports | |
android/**/build/paparazzi | |
retention-days: 5 | |
connected-check: | |
runs-on: ubuntu-latest | |
concurrency: | |
group: ${{ github.workflow }}-${{ github.ref }}-android-connected-check | |
cancel-in-progress: true | |
permissions: | |
contents: read | |
packages: read | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
submodules: true | |
- name: set up JDK 17 | |
uses: actions/setup-java@v4 | |
with: | |
java-version: '17' | |
distribution: 'temurin' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
working-directory: android | |
- name: Install cargo-ndk | |
run: cargo install cargo-ndk | |
- name: Touch local.properties (required for build) | |
run: echo 'stadiaApiKey=' > local.properties | |
working-directory: android | |
- 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 | |
- name: Run Connected Checks | |
uses: reactivecircus/android-emulator-runner@v2 | |
with: | |
api-level: 30 | |
avd-name: ubuntu-latest-x86_64-aosp-atd-30 | |
arch: x86_64 | |
target: aosp_atd | |
script: ./gradlew connectedCheck | |
working-directory: android | |
- name: 'Upload Artifact' | |
uses: actions/upload-artifact@v4 | |
if: success() || failure() | |
with: | |
name: connected-reports | |
path: | | |
android/**/build/reports | |
retention-days: 5 |