name: Test

on:
  push:

jobs:
  Gradle-Test:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout code
        uses: actions/checkout@v4

      - name: Set up JDK
        uses: actions/setup-java@v4
        with:
          java-version: '23'
          check-latest: true
          distribution: 'zulu'

      - name: Setup Gradle
        uses: gradle/actions/setup-gradle@v4
        with:
          add-job-summary: always
          cache-cleanup: on-success

      - name: Cache Gradle dependencies
        uses: actions/cache@v4
        with:
          path: | 
            ~/.gradle/caches
          key: ${{ runner.os }}-gradle-${{ hashFiles('**/*.gradle*', '**/gradle-wrapper.properties') }}
          restore-keys: |
            ${{ runner.os }}-gradle-

      - name: Test
        env:
          DISCORD_TEST_TOKEN: ${{ secrets.DISCORD_TOKEN }}
        run: chmod +x gradlew; ./gradlew test

      - name: Move Test Results
        if: always()
        run: |
          mkdir test-results/;
          [ -d lib/build/test-results/test/ ] && mv lib/build/test-results/test/*.xml test-results/;
          [ -d wrapper/javacord/build/test-results/test/ ] && mv wrapper/javacord/build/test-results/test/*.xml test-results/;

      - name: Upload Test Result
        uses: christopherhx/gitea-upload-artifact@v4
        if: always()
        with:
          name: test-results
          path: test-results/