# Licensed to the Apache Software Foundation (ASF) under one or more
# contributor license agreements.  See the NOTICE file distributed with
# this work for additional information regarding copyright ownership.
# The ASF licenses this file to You 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: Java 8 Build

on: [push, pull_request]

jobs:
  build:
    runs-on: ubuntu-latest
    env:
      MVN_COMMON_OPTIONS: -U -B --no-transfer-progress -Pinclude-netty-tcnative-static
      MVN_BUILD_OUTPUT_FILE: "/tmp/mvn_build_output.out"
      MVN_VALIDATION_DIR: "/tmp/flink-validation-deployment"

    steps:
      - uses: actions/checkout@v2

      - name: Set JDK
        uses: actions/setup-java@v2
        with:
          java-version: 8
          distribution: 'temurin'
          cache: 'maven'

      - name: Set Maven 3.8.6
        uses: stCarolas/setup-maven@v4.2
        with:
          maven-version: 3.8.6

      - name: Build
        run: |
          set -o pipefail

          mvn clean deploy ${{ env.MVN_COMMON_OPTIONS }} \
            -DaltDeploymentRepository=validation_repository::default::file:${{ env.MVN_VALIDATION_DIR }} \
             -Plicense-check \
            | tee ${{ env.MVN_BUILD_OUTPUT_FILE }}

      - name: Check licensing
        run: |
          mvn ${MVN_COMMON_OPTIONS} exec:java@check-licensing -N \
            -Dexec.args="${{ env.MVN_BUILD_OUTPUT_FILE }} $(pwd) ${{ env.MVN_VALIDATION_DIR }}" \
            -Dlog4j.configurationFile=file://$(pwd)/tools/ci/log4j.properties