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

on:
  push:
    branches:
      - '*'
  pull_request:
    branches:
      - '*'

# https://help.github.com/en/actions/automating-your-workflow-with-github-actions/software-installed-on-github-hosted-runners

jobs:
  windows:
    name: 'Windows (JDK 11)'
    runs-on: windows-latest
    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: 50
    - name: 'Set up JDK 11'
      uses: actions/setup-java@v1
      with:
        java-version: 11
    - name: 'Test'
      shell: cmd
      run: |
        ./gradlew --no-parallel --no-daemon build javadoc

  linux-avatica:
    name: 'Linux (JDK 8), Avatica master'
    runs-on: ubuntu-latest
    steps:
    - name: 'Set up JDK 8'
      uses: actions/setup-java@v1
      with:
        java-version: 8
    - uses: actions/checkout@master
      with:
        fetch-depth: 50
    - name: 'Install Avatica to Maven Local'
      run: |
        ./gradlew publishToMavenLocal -Pcalcite.avatica.version=1.0.0-dev-master -PskipJavadoc
    - name: 'Test Calcite'
      run: |
        git clone --branch gradle --depth 100 https://github.com/vlsi/calcite.git ../calcite
        cd ../calcite
        ./gradlew --no-parallel --no-daemon build -Pcalcite.avatica.version=1.0.0-dev-master-SNAPSHOT -PenableMavenLocal

  mac:
    name: 'macOS (JDK 13)'
    runs-on: macos-latest
    steps:
    - uses: actions/checkout@master
      with:
        fetch-depth: 50
    - name: 'Set up JDK 13'
      uses: actions/setup-java@v1
      with:
        java-version: 13
    - name: 'Test'
      run: |
        ./gradlew --no-parallel --no-daemon build javadoc
