name: Publish

on:
  push:
    tags:
      - 'v*'

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
    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('**/yarn.lock') }}

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


      - name: Create repo artifacts
        run: |
          cd master
          ./.github/scripts/create-repo.sh

      - name: Upload Release
        uses: xresloader/upload-to-github-release@master
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
        with:
          file: "master/repo/*"
          tags: true
          draft: true
          verbose: true

#      - name: Create Release
#        id: create_release
#        uses: actions/create-release@v1
#        env:
#          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
#        with:
#          tag_name: ${{ github.ref }}
#          release_name: Release ${{ github.ref }}
#          body: |
#                  Release body
#          draft: false
#          prerelease: true
#
#      - name: Get the Ref
#        id: get-ref
#        uses: ankitvgupta/ref-to-tag-action@master
#        with:
#          ref: ${{ github.ref }}
#          head_ref: ${{ github.head_ref }}
#
#      - name: Get the tag
#        run: echo "The tag was ${{ steps.get-ref.outputs.tag }}"
#
#      - name: Upload Release
#        uses: AButler/upload-release-assets@v2.0
#        with:
#          files: 'master/repo/*'
#          repo-token: ${{ secrets.GITHUB_TOKEN }}
#          release-tag: ${{ steps.get-ref.outputs.tag }}
