# 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: Nightly Build
on:
  schedule:
    - cron: '0 1 * * *'
  workflow_dispatch:
permissions:
  checks: write
  pull-requests: write
jobs:
  nightly-test:
    if: (github.event_name == 'schedule' && github.repository == 'apache/fesod') || (github.event_name != 'schedule')
    runs-on: ubuntu-24.04
    strategy:
      matrix:
        java: [ 8, 11, 17, 21, 25 ]
        distribution: [ 'temurin' ]
      fail-fast: false
      max-parallel: 5
    name: Test JDK ${{ matrix.java }}
    steps:
      - uses: actions/checkout@v5
      - name: Set up JDK
        uses: actions/setup-java@v5
        with:
          java-version: ${{ matrix.java }}
          distribution: ${{ matrix.distribution }}
      - name: Cache local Maven repository
        uses: actions/cache@v4
        with:
          path: ~/.m2/repository
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: |
            ${{ runner.os }}-m2
      - name: Test with Maven
        run: ./mvnw clean install -B -V -Dmaven.test.skip=false
      - name: Publish Unit Test Results
        uses: EnricoMi/publish-unit-test-result-action@v2
        if: (!cancelled())
        with:
          files: "**/target/surefire-reports/*.xml"
