# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements.  See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership.  The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License.  You may obtain a copy of the License at
#
#       http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied.  See the License for the
# specific language governing permissions and limitations
# under the License.

name: Maven CI

permissions:
  contents: read

on:
  workflow_dispatch: { }
  push:
    branches: [ main, '1.13.x', '1.12.x', '1.11.x', '1.10.x' ]
  pull_request:
    branches: [ main, '1.13.x', '1.12.x', '1.11.x', '1.10.x' ]

jobs:
  build:
    runs-on: ubuntu-latest

    steps:
      - name: Checkout
        uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5

      - name: Set up JDK
        uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
        with:
          java-version: 11
          distribution: temurin

      - name: License Check
        run: mvn apache-rat:check "-Drat.consoleOutput"

      - name: Build with Maven
        run: >-
          mvn verify --show-version --errors --batch-mode --no-transfer-progress -Pdocs
          -Dgh_user=${{ github.actor }} -Dgh_token=${{ secrets.GITHUB_TOKEN }}

  build-all:
    needs: build

    strategy:
      matrix:
        os: [ 'ubuntu-latest', 'windows-latest', 'macOS-latest' ]
        jdk: [ 11, 17, 21 ]
        dist: [ 'temurin', 'adopt-openj9', 'zulu' ]
        exclude:
          # was already built
          - os: 'ubuntu-latest'
            jdk: 11
            dist: 'temurin'
          # exclude temurin on MacOS. zulu (also hotspot) and OpenJ9 are sufficient.
          - os: 'macOS-latest'
            dist: 'temurin'
          # no Temurin 21
          - dist: 'temurin'
            jdk: 21
          # no OpenJ9 21
          - dist: adopt-openj9
            jdk: 21
      fail-fast: false

    runs-on: ${{ matrix.os }}

    steps:
      - name: Checkout
        uses: actions/checkout@44c2b7a8a4ea60a981eaca3cf939b5f4305c123b # v4.1.5

      - name: Set up JDK
        uses: actions/setup-java@99b8673ff64fbf99d8d325f52d9a5bdedb8483e9 # v4.2.1
        with:
          java-version: ${{ matrix.jdk }}
          distribution: ${{ matrix.dist }}

      - name: Build with Maven (Linux)
        if: matrix.os == 'ubuntu-latest' && matrix.jdk <= 17
        run: >-
          mvn verify --show-version --errors --batch-mode --no-transfer-progress -Pdocs
          -Dgh_user=${{ github.actor }} -Dgh_token=${{ secrets.GITHUB_TOKEN }}

      - name: Build with Maven (non-Linux or JDK > 17)
        if: matrix.os != 'ubuntu-latest' || matrix.jdk > 17
        run: >-
          mvn verify --show-version --errors --batch-mode --no-transfer-progress -Pdocs
          -Pskip_jakarta_ee_tests

      - name: Archive test run logs
        uses: actions/upload-artifact@65462800fd760344b1a7b4382951275a0abb4808 # v4.3.3
        if: always()
        with:
          name: test-logs-${{ matrix.os }}-${{ matrix.jdk }}-${{ matrix.dist }}
          path: |
            **/target/failsafe-reports/*-output.txt
            **/target/**/logs/server.log
