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 steps: - uses: actions/checkout@v4.1.6 - 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@v3 - 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 assembleRelease - name: Check lint run: ./gradlew lintRelease - name: Run unit tests run: timeout 5m ./gradlew testReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testReleaseUnitTest; } - name: SpotBugs run: ./gradlew spotbugsRelease - name: Archive test results if: always() uses: actions/upload-artifact@v4.3.3 with: name: test-results path: app/build/reports