mirror of
https://github.com/CatimaLoyalty/Android.git
synced 2025-12-30 02:27:54 -05:00
Currently, this just allows us to remove the donation button on Google Play without using the deprecated installer APIs. In the future, this should allow us to also release multiple versions of Catima (for example: WearOS is a commonly requested feature, but this needs non-free dependencies, which may not be okay to all users).
75 lines
2.3 KiB
YAML
75 lines
2.3 KiB
YAML
name: Android CI
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
branches:
|
|
- main
|
|
- staging
|
|
- trying
|
|
pull_request:
|
|
branches:
|
|
- main
|
|
permissions:
|
|
actions: none
|
|
checks: none
|
|
contents: read
|
|
deployments: none
|
|
discussions: none
|
|
id-token: none
|
|
issues: none
|
|
packages: none
|
|
pages: none
|
|
pull-requests: none
|
|
repository-projects: none
|
|
security-events: none
|
|
statuses: none
|
|
env:
|
|
JAVA_HOME: /usr/lib/jvm/java-17-openjdk-amd64
|
|
jobs:
|
|
build:
|
|
runs-on: ubuntu-latest
|
|
strategy:
|
|
matrix:
|
|
flavor: [Foss, Gplay]
|
|
steps:
|
|
- uses: actions/checkout@v4.2.2
|
|
- name: Fail on bad translations
|
|
run: if grep -ri "<xliff" app/src/main/res/values*/strings.xml; then echo "Invalidly escaped translations found"; exit 1; fi
|
|
- uses: gradle/actions/wrapper-validation@v4
|
|
- name: set up OpenJDK 17
|
|
run: |
|
|
sudo apt-get update
|
|
sudo apt-get install -y openjdk-17-jdk-headless
|
|
sudo update-alternatives --auto java
|
|
- name: Build
|
|
run: ./gradlew assemble${{ matrix.flavor }}Release
|
|
- name: Check lint
|
|
run: ./gradlew lint${{ matrix.flavor }}Release
|
|
- name: Run unit tests
|
|
run: timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest; }
|
|
- name: Enable KVM
|
|
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 instrumented tests (API 21)
|
|
uses: ReactiveCircus/android-emulator-runner@v2
|
|
with:
|
|
api-level: 21
|
|
arch: x86_64
|
|
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
|
|
- name: Run instrumented tests (API 34)
|
|
uses: ReactiveCircus/android-emulator-runner@v2
|
|
with:
|
|
api-level: 34
|
|
arch: x86_64
|
|
script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest
|
|
- name: SpotBugs
|
|
run: ./gradlew spotbugs${{ matrix.flavor }}Release
|
|
- name: Archive test results
|
|
if: always()
|
|
uses: actions/upload-artifact@v4.5.0
|
|
with:
|
|
name: test-results-flavor${{ matrix.flavor }}
|
|
path: app/build/reports
|