name: CI

on:
  push:
  pull_request:
    paths-ignore:
      - 'docs/**'
      - '**/README.md'

jobs:
  build:
    strategy:
      matrix:
        os: [ubuntu-latest, macos-latest]
      fail-fast: false
    runs-on: ${{ matrix.os }}
    steps:
      - uses: actions/checkout@v2
        with:
          lfs: true
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt'
          cache: gradle
      - name: Pull lfs
        run: git lfs pull
      - name: Build with make
        run: make
      - name: cache nodes dependencies
        uses: actions/upload-artifact@v2
        with:
          name: cached-localnet
          path: .localnet
      - name: Cleanup Gradle Cache
        # Remove some files from the Gradle cache, so they aren't cached by GitHub Actions.
        # Restoring these files from a GitHub Actions cache might cause problems for future builds.
        run: |
          rm -f ~/.gradle/caches/modules-2/modules-2.lock
          rm -f ~/.gradle/caches/modules-2/gc.properties
      - uses: actions/upload-artifact@v2
        if: failure()
        with:
          name: gradlew-report
          path: 'desktop/build/reports/tests/test/index.html'
          retention-days: 30

  build-windows:
    runs-on: windows-latest
    steps:
      - uses: actions/checkout@v2
        with:
          lfs: true
      - name: Set up JDK 11
        uses: actions/setup-java@v2
        with:
          java-version: '11'
          distribution: 'adopt'
      - name: Pull lfs
        run: git lfs pull
      - name: Build with Gradle
        run: ./gradlew build --stacktrace --scan