diff --git a/.github/workflows/android.yml b/.github/workflows/android.yml index 5b90a2b6a..c90c7285c 100644 --- a/.github/workflows/android.yml +++ b/.github/workflows/android.yml @@ -30,27 +30,29 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - api-level: [ 21, 34 ] + 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 assembleRelease - - name: Check lint (foss flavour) - run: ./gradlew lintFossRelease - - name: Check lint (gplay flavour) - run: ./gradlew lintGplayRelease - - name: Run unit tests (foss flavour) - run: timeout 5m ./gradlew testFossReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testFossReleaseUnitTest; } - - name: Run unit tests (gplay flavour) - run: timeout 5m ./gradlew testGplayReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew testGplayReleaseUnitTest; } + run: ./gradlew assemble${{ matrix.flavor }}Release + check-locales: + runs-on: ubuntu-latest + 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 + instrumented-tests: + runs-on: ubuntu-latest + strategy: + matrix: + flavor: [ Foss, Gplay ] + api-level: [ 21, 34 ] + - uses: actions/checkout@v4.2.2 - name: Enable KVM run: | echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules @@ -61,14 +63,31 @@ jobs: with: api-level: ${{ matrix.api-level }} arch: x86_64 - script: ./gradlew connectedCheck - - name: SpotBugs (foss flavour) - run: ./gradlew spotbugsFossRelease - - name: SpotBugs (gplay flavour) - run: ./gradlew spotbugsGplayRelease - - name: Archive test results - if: always() - uses: actions/upload-artifact@v4.4.3 - with: - name: test-results-api${{ matrix.api-level }} - path: app/build/reports + script: ./gradlew connected${{ matrix.flavor }}DebugAndroidTest + lint: + runs-on: ubuntu-latest + strategy: + matrix: + flavor: [ Foss, Gplay ] + steps: + - uses: actions/checkout@v4.2.2 + - name: Check lint + run: ./gradlew lint${{ matrix.flavor }}Release + spotbugs: + runs-on: ubuntu-latest + strategy: + matrix: + flavor: [ Foss, Gplay ] + steps: + - uses: actions/checkout@v4.2.2 + - name: SpotBugs + run: ./gradlew spotbugs${{ matrix.flavor }}Release + unit-tests: + runs-on: ubuntu-latest + strategy: + matrix: + flavor: [ Foss, Gplay ] + steps: + - uses: actions/checkout@v4.2.2 + - name: Run unit tests + run: timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest || { ./gradlew --stop && timeout 5m ./gradlew test${{ matrix.flavor }}ReleaseUnitTest; }