name: CI Pull Request

on:
  pull_request:

jobs:
  check_wrapper:
    name: Validate Gradle Wrapper
    runs-on: ubuntu-latest

    steps:
      - name: Clone repo
        uses: actions/checkout@v2

      - name: Validate Gradle Wrapper
        uses: gradle/wrapper-validation-action@v1

  build:
    name: Build FatJar
    needs: check_wrapper
    if: "!startsWith(github.event.head_commit.message, '[SKIP CI]')"
    runs-on: ubuntu-latest

    steps:
      - name: Cancel previous runs
        uses: styfle/cancel-workflow-action@0.5.0
        with:
          access_token: ${{ github.token }}

      - name: Checkout master branch
        uses: actions/checkout@v2
        with:
          ref: master
          path: master
          fetch-depth: 0

      - name: Set up JDK 1.8
        uses: actions/setup-java@v1
        with:
          java-version: 1.8

      - name: Copy CI gradle.properties
        run: |
          cd master
          mkdir -p ~/.gradle
          cp .github/runner-files/ci-gradle.properties ~/.gradle/gradle.properties

      - name: Download android.jar
        run: |
          cd master
          curl https://raw.githubusercontent.com/AriaMoradi/Tachidesk/android-jar/android.jar -o AndroidCompat/lib/android.jar

      - name: Cache node_modules
        uses: actions/cache@v2
        with:
          path: |
            **/react/node_modules
          key: ${{ runner.os }}-${{ hashFiles('**/react/yarn.lock') }}

      - name: Build and copy webUI, Build Jar and launch4j
        uses: eskatos/gradle-command-action@v1
        with:
          build-root-directory: master
          wrapper-directory: master
          arguments: :webUI:copyBuild :server:windowsPackage --stacktrace
          wrapper-cache-enabled: true
          dependencies-cache-enabled: true
          configuration-cache-enabled: true