name: Unit tests

on:
    pull_request:
        branches: [ master, main, stable-* ]
    push:
        branches: [ master, main, stable-* ]

permissions:
    contents: read
    pull-requests: write

concurrency: 
    group: unit-tests-${{ github.head_ref || github.run_id }}
    cancel-in-progress: true

jobs:
    test:
        runs-on: ubuntu-latest
        steps:
            -   uses: actions/checkout@b4ffde65f46336ab88eb53be808477a3936bae11 # v4.1.1
            -   name: Set up JDK 17
                uses: actions/setup-java@387ac29b308b003ca37ba93a6cab5eb57c8f5f93 # v4.0.0
                with:
                    distribution: "temurin"
                    java-version: 17
            -   name: Run unit tests with coverage
                uses: gradle/gradle-build-action@982da8e78c05368c70dac0351bb82647a9e9a5d2 # v2.11.1
                with:
                    arguments: testGplayDebugUnit
            -   name: Upload test artifacts
                if: ${{ failure() }}
                uses: actions/upload-artifact@1eb3cb2b3e0f29609092a73eb033bb759a334595
                with:
                    name: test-results
                    path: app/build/reports/tests/testGplayDebugUnitTest/