#    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@v1
    - 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 -Pitests
  OpenJDK11_Linux:
    name: OpenJDK11 Linux
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v1
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: Build OpenJDK11 Linux
      run: mvn -U -e -B -ntp install -Pitests
  OpenJDK13_Linux:
    name: OpenJDK13 Linux
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v1
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 13
    - name: Build OpenJDK13 Linux
      run: mvn -U -e -B -ntp install -Pitests
  OpenJDK8_Windows:
    name: OpenJDK8 Windows
    runs-on: windows-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v1
    - 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 -Pitests
  OpenJDK8_macOS:
    name: OpenJDK8 macOS
    runs-on: macos-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v1
    - 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 -Pitests
  OpenJDK8_Linux_Experimental:
    name: OpenJDK8 Linux Experimental
    runs-on: ubuntu-latest
    steps:
    - name: Git Checkout
      uses: actions/checkout@v1
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 1.8
    - name: Build OpenJDK8 Linux Experimental
      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@v1
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: Build OpenJDK11 Linux Experimental
      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@v1
    - name: Set up Java
      uses: actions/setup-java@v1
      with:
        java-version: 13
    - name: Build OpenJDK13 Linux Experimental
      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@v1
#    - name: Set up Java
#      uses: actions/setup-java@v1
#      with:
#        java-version: 14.0.0-ea
#    - name: Build OpenJDK14 Linux Experimental
#      run: mvn -U -e -B -ntp install -Pexperimental
