#
# 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: "Continuous Integration"

on:
  push:
    branches: [ '**' ]
  pull_request:
    branches: [ '**' ]

jobs:
  build:
    name: Build
    strategy:
      fail-fast: false
      matrix:
        os: [ ubuntu-latest ]
        java: [ 8, 11 ]
        language: ['java']
    runs-on: ${{ matrix.os }}

    services:
      mysql:
        image: mysql:8
        env:
          # The MySQL docker container requires these environment variables to be set, so we can create and migrate the test database.
          MYSQL_DATABASE: EVENTMESH_DASHBOARD
          MYSQL_ROOT_PASSWORD: password
        ports:
          # https://docs.github.com/en/actions/using-containerized-services/about-service-containers
          - 3306:3306
        # Set health checks to wait until MySQL has started
        options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3

    steps:
      - name: Checkout repository
        uses: actions/checkout@v3

      - name: Set up JDK ${{ matrix.java }}
        uses: actions/setup-java@v3
        with:
          distribution: 'corretto'
          java-version: ${{ matrix.java }}
          cache: maven

      - name: Build with Maven
        run: mvn -B package --file pom.xml
