# SPDX-FileCopyrightText: 2022-2024 Nextcloud GmbH and Nextcloud contributors
# SPDX-License-Identifier: AGPL-3.0-or-later

name: Unit tests

on:
    pull_request:
        branches: [ master, stable-* ]
    push:
        branches: [ master, 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@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
                with:
                    distribution: "temurin"
                    java-version: 17
            -   name: Delete old comments
                env:
                    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                if: ${{ always() }}
                run: scripts/deleteOldComments.sh "test" "Unit" ${{github.event.number}}
            -   name: Run unit tests with coverage
                uses: gradle/gradle-build-action@bdf99f9dada2506e990bac6de8ec5e3de34a04f1 # v3.2.1
                with:
                    arguments: jacocoTestGplayDebugUnitTest
            -   name: Upload failing results
                if: ${{ failure() }}
                env:
                    GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
                run: scripts/uploadReport.sh "${{ secrets.LOG_USERNAME }}" "${{ secrets.LOG_PASSWORD }}" ${{github.event.number}} "test" "Unit" ${{github.event.number}}
            -   name: Upload coverage to codecov
                uses: codecov/codecov-action@84508663e988701840491b86de86b666e8a86bed # v4.3.0
                with:
                    token: ${{ secrets.CODECOV_TOKEN }}
                    flags: unit
                    fail_ci_if_error: true
            -   name: Upload jacoco artifacts
                if: ${{ failure() }}
                uses: actions/upload-artifact@5d5d22a31266ced268874388b861e4b58bb5c2f3 # v4.3.1
                with:
                    name: test-results
                    path: app/build/reports/tests/testGplayDebugUnitTest/
