# ---------------------------------------------------------------------------
# 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: build

on:
  pull_request:
    branches:
      - master
      - "release-*"
    paths-ignore:
      - '**.adoc'
      - 'KEYS'
      - 'LICENSE'
      - 'NOTICE'
  push:
    branches:
      - master
      - "release-*"
    paths-ignore:
      - '**.adoc'
      - 'KEYS'
      - 'LICENSE'
      - 'NOTICE'
jobs:
  build:
    strategy:
      matrix:
        # TODO: test an all the supported OS
        # [ubuntu-latest, macos-latest, windows-latest]
        os: [ubuntu-latest]
    runs-on: ${{ matrix.os }}
    steps:
    - name: Set up JDK 11
      uses: joschi/setup-jdk@v2
      with:
        java-version: "11"
    - name: Install Go
      uses: actions/setup-go@v1
      with:
        go-version: 1.13.x
    - name: Checkout code
      uses: actions/checkout@v2
    - name: Cache modules
      uses: actions/cache@v1
      with:
        path: ~/go/pkg/mod
        key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }}
        restore-keys: |
          ${{ runner.os }}-go-
    - name: Test
      run: make
