name: Cross-Version

on:
  push:
    branches:
      - main
      - 'releases/*'
  pull_request:
    branches:
      - '*'

env:
  ORG_GRADLE_PROJECT_enableTestDistribution: true
  ORG_GRADLE_PROJECT_junitBuildCacheUsername: ${{ secrets.BUILD_CACHE_USERNAME }}
  ORG_GRADLE_PROJECT_junitBuildCachePassword: ${{ secrets.BUILD_CACHE_PASSWORD }}
  GRADLE_ENTERPRISE_ACCESS_KEY: ${{ secrets.GRADLE_ENTERPRISE_ACCESS_KEY }}

jobs:
  openjdk:
    strategy:
      matrix:
        jdk: [19, 20, 21]
    name: "OpenJDK ${{ matrix.jdk }}"
    runs-on: ubuntu-latest
    steps:
      - name: Check out repository
        uses: actions/checkout@v3
        with:
          fetch-depth: 1
      - name: Set up Test JDK
        uses: ./.github/actions/setup-test-jdk
      - name: 'Set up JDK ${{ matrix.jdk }}'
        uses: oracle-actions/setup-java@v1
        with:
          website: jdk.java.net
          release: ${{ matrix.jdk }}
          version: latest
      - name: 'Prepare JDK${{ matrix.jdk }} env var'
        shell: bash
        run: echo "JDK${{ matrix.jdk }}=$JAVA_HOME" >> $GITHUB_ENV
      - name: Build
        uses: ./.github/actions/run-gradle
        with:
          arguments: |
            -PjavaToolchainVersion=${{ matrix.jdk }}
            -Dscan.tag.JDK_${{ matrix.jdk }}
            build
      - name: Upload Test Distribution trace files
        uses: actions/upload-artifact@v3
        with:
          name: "Test Distribution trace files (OpenJDK ${{ matrix.jdk }})"
          path: '**/build/test-results/*/trace.json'
