#    Licensed 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: CI Build

on: [push, pull_request]

env:
  LC_ALL: en_US.UTF-8

jobs:
  OpenJDK8_Linux:
    name: OpenJDK8 Linux
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build OpenJDK8 Linux
      run: mvn -U -e -B -ntp install
  OpenJDK11_Linux:
    name: OpenJDK11 Linux
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: Build OpenJDK11 Linux
      run: mvn -U -e -B -ntp install
  OpenJDK13_Linux:
    name: OpenJDK13 Linux
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 13
    - name: Build OpenJDK13 Linux
      run: mvn -U -e -B -ntp install
  OpenJDK8_Windows:
    name: OpenJDK8 Windows
    runs-on: windows-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build OpenJDK8 Windows
      shell: bash
      run: mvn -U -e -B -ntp install
  OpenJDK8_macOS:
    name: OpenJDK8 macOS
    runs-on: macos-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build OpenJDK8 macOS
      shell: bash
      run: mvn -U -e -B -ntp install
  OpenJDK8_Linux_Experimental:
    name: OpenJDK8 Linux Experimental
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build OpenJDK8 Linux Experimental
      continue-on-error: true
      run: mvn -U -e -B -ntp install -Pexperimental
  OpenJDK11_Linux_Experimental:
    name: OpenJDK11 Linux Experimental
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: Build OpenJDK11 Linux Experimental
      continue-on-error: true
      run: mvn -U -e -B -ntp install -Pexperimental
  OpenJDK13_Linux_Experimental:
    name: OpenJDK13 Linux Experimental
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 13
    - name: Build OpenJDK13 Linux Experimental
      continue-on-error: true
      run: mvn -U -e -B -ntp install -Pexperimental
  OpenJDK14_Linux_Experimental:
    name: OpenJDK14 Linux Experimental
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v2
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 14
    - name: Build OpenJDK14 Linux Experimental
      run: mvn -U -e -B -ntp install -Pexperimental
