---
name: Java CI

on:
  push:
    # https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#example-excluding-paths
    paths-ignore:
      - 'docs/**'
      - '**.md'
  pull_request:
    paths-ignore:
      - 'docs/**'
      - '**.md'
  workflow_dispatch:

jobs:
  test:
    runs-on: ${{ matrix.os }}
    strategy:
      matrix:
        os: [ ubuntu-latest ]
        java: [ 17, 21 ]
      fail-fast: false
      max-parallel: 16
    name: Test JDK ${{ matrix.java }}, ${{ matrix.os }}

    steps:
      - uses: actions/checkout@v4
      - name: Set up JDK
        uses: actions/setup-java@v4
        with:
          distribution: 'temurin'
          java-version: ${{ matrix.java }}
          cache: 'maven'
      - name: Build with Maven if test jdk17
        if: ${{ matrix.java == '17' || matrix.java == '21' }}
        run: ./mvnw -Penable-for-jdk17+,gen-code-cov clean package -B
      - name: "Codecov if test jdk17"
        if: ${{ matrix.java == '17' }}
        uses: codecov/codecov-action@v3.1.0
        with:
          files: ./core/target/site/jacoco/jacoco.xml,./druid-spring-boot-starter/target/site/jacoco/jacoco.xml,./druid-spring-boot-3-starter/target/site/jacoco/jacoco.xml