name: Build

on:
  push:
    branches:
      - 1.3.x
    paths-ignore:
      - '.gitignore'
      - 'examples'
      - 'README.md'
  pull_request:
    branches-ignore:
      - 'future'
    paths-ignore:
      - '.gitignore'
      - 'examples'
      - 'README.md'

jobs:
  build:
    name: ${{ matrix.os }}-${{ matrix.jdk }}
    runs-on: ${{ matrix.os }}
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-latest, windows-latest ]
        jdk: [ 17, 21 ]
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Set up JDK ${{ matrix.jdk }}
        uses: actions/setup-java@v4
        with:
          java-version: ${{ matrix.jdk }}
          distribution: 'adopt'
          cache: maven
      - name: Build and test
        if: runner.os == 'Windows'
        run: mvn clean install -DallTests -Pdist '-Dskip.container.tests=true'
      - name: Build and test
        if: runner.os != 'Windows'
        run: mvn clean install -DallTests -Pdist '-Dskip.container.tests=false'
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: surefire-reports-${{ matrix.os }}-${{ matrix.jdk }}
          path: '**/surefire-reports/*.txt'
  pmd:
    name: ubuntu-latest-pmd
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
        with:
          fetch-depth: 0
      - name: Set up JDK
        uses: actions/setup-java@v4
        with:
          java-version: 17
          distribution: 'adopt'
          cache: maven
      - name: Build and test
        run: mvn pmd:aggregate-pmd-check -DskipTests
      - uses: actions/upload-artifact@v4
        if: failure()
        with:
          name: pmd-reports
          path: 'target/pmd.xml'
      - name: Display report
        if: failure()
        run: cat target/pmd.xml

