# This workflow will build a Java project with Maven
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-maven

name: Main Mac and Linux

on:
  push:
    branches:
      - master
      - 'rel/*'
      - "new_*"
    paths-ignore:
      - 'docs/**'
  pull_request:
    branches:
      - master
      - 'rel/*'
      - "new_*"
    paths-ignore:
      - 'docs/**'
  # allow manually run the action:
  workflow_dispatch:

concurrency:
  group: ${{ github.workflow }}-${{ github.ref }}
  cancel-in-progress: true

env:
  MAVEN_OPTS: -Dhttp.keepAlive=false -Dmaven.wagon.http.pool=false -Dmaven.wagon.http.retryHandler.class=standard -Dmaven.wagon.http.retryHandler.count=3

jobs:
  unix:
    strategy:
      fail-fast: false
      max-parallel: 20
      matrix:
        java: [ 8, 11, 17 ]
        os: [ ubuntu-latest, macos-latest ]
    runs-on: ${{ matrix.os}}

    steps:
      - uses: actions/checkout@v2
      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v1
        with:
          java-version: ${{ matrix.java }}
      - name: Cache Maven packages
        uses: actions/cache@v2
        with:
          path: ~/.m2
          key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
          restore-keys: ${{ runner.os }}-m2-
      - name: Check Apache Rat
        run: mvn -B apache-rat:check -P site -P code-coverage
      - name: IT/UT Test
        shell: bash
        # we do not compile client-cpp for saving time, it is tested in client.yml
        run: mvn -B clean verify -Dtest.port.closed=true -P '!testcontainer'
