name: Gradle build

on:
  push:
    branches: [ dev, master ]
  pull_request:

jobs:
  build:
    strategy:
      matrix:
        os: [ macOS-latest, windows-latest ]
    runs-on: ${{matrix.os}}
    timeout-minutes: 40
    steps:
      - name: Checkout the repo
        uses: actions/checkout@v2
      - name: Set up JDK 11
        uses: DeLaGuardo/setup-graalvm@4.0
        with:
          graalvm: 21.2.0
          java: java11
          arch: amd64
      - name: Cache gradle
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Cache konan
        uses: actions/cache@v2
        with:
          path: ~/.konan
          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle.kts') }}
          restore-keys: |
            ${{ runner.os }}-gradle-
      - name: Gradle Wrapper Validation
        uses: gradle/wrapper-validation-action@v1.0.4
      - name: Build
        run: ./gradlew build --build-cache --no-daemon --stacktrace