name: "Build"

on: [push, pull_request, workflow_dispatch]

jobs:
  build:
    runs-on: ubuntu-22.04
    strategy:
      fail-fast: false
      matrix:
        java: [ 11, 17, 21, 23 ]

    steps:
      - uses: actions/checkout@v4
      - uses: actions/cache@v4
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-maven-

      - name: Install JDK ${{ matrix.java }}
        uses: actions/setup-java@v4
        with:
          java-version: ${{ matrix.java }}
          distribution: 'temurin'

      - name: Build
        run: mvn -B clean verify

      - name: Archive Test Logs On Failure
        if: failure()
        run: tar -czvf surefire-reports-jdk-${{ matrix.java }}.tar.gz **/target/surefire-reports/*

      - name: Upload Test Logs On Failure
        if: failure()
        uses: actions/upload-artifact@v4
        with:
          name: surefire-reports-jdk-${{ matrix.java }}
          path: surefire-reports-jdk-${{ matrix.java }}.tar.gz
