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

on:
  pull_request:
    paths:
      - parent/**
      - testsupport/**
      - subsystem/**
      - .github/workflows/subsystem.yml
  push:
    branches:
      - $default-branch

env:
  LC_ALL: en_US.UTF-8

jobs:
  JDKxx_Matrix:
    timeout-minutes: 10
    strategy:
      fail-fast: false
      matrix:
        java: [ 8 ]
        os: [ ubuntu-latest ]
    name: JDK${{ matrix.java }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    steps:
    - name: Git Checkout
      uses: actions/checkout@v4
    - name: Set up Java
      uses: actions/setup-java@v4
      with:
        distribution: 'temurin'
        java-version: ${{ matrix.java }}
    - name: Build parent
      shell: bash
      run: mvn -U -e -B -ntp clean install -f parent
    - name: Build testsupport
      shell: bash
      run: mvn -U -e -B -ntp -Dmaven.test.skip=true clean install -f testsupport
    - name: Build subsystem
      shell: bash
      run: mvn -U -e -B -ntp clean install -f subsystem
