name: Build

# https://docs.github.com/en/actions/learn-github-actions/workflow-syntax-for-github-actions#concurrency
concurrency:
  group: "build"
  cancel-in-progress: true

on:
  push:
    branches:
      # choose your default branch
      - master
      - main
    paths-ignore:
      - '*.md'

jobs:
  build:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@master
        with:
          path: "src"

      - name: Checkout builds
        uses: actions/checkout@master
        with:
          ref: "builds"
          path: "builds"

      - name: Clean old builds
        run: rm $GITHUB_WORKSPACE/builds/*.cs3 || true

      - name: Setup JDK 11
        uses: actions/setup-java@v1
        with:
          java-version: 11

      - name: Setup Android SDK
        uses: android-actions/setup-android@v2

      - name: Access Secrets
        env:
          SORA_API: ${{ secrets.SORA_API }}
          SORAHE: ${{ secrets.SORAHE }}
          SORAXA: ${{ secrets.SORAXA }}
          SORATED: ${{ secrets.SORATED }}
          DUMP_API: ${{ secrets.DUMP_API }}
          DUMP_KEY: ${{ secrets.DUMP_KEY }}
          CRUNCHYROLL_BASIC_TOKEN: ${{ secrets.CRUNCHYROLL_BASIC_TOKEN }}
          CRUNCHYROLL_REFRESH_TOKEN: ${{ secrets.CRUNCHYROLL_REFRESH_TOKEN }}
          ANICHI_API: ${{ secrets.ANICHI_API }}
          ANICHI_SERVER: ${{ secrets.ANICHI_SERVER }}
          ANICHI_ENDPOINT: ${{ secrets.ANICHI_ENDPOINT }}
          ANICHI_APP: ${{ secrets.ANICHI_APP }}
          PRIMEWIRE_KEY: ${{ secrets.PRIMEWIRE_KEY }}
          ZSHOW_API: ${{ secrets.ZSHOW_API }}
        run: |
          cd $GITHUB_WORKSPACE/src
          echo SORA_API=$SORA_API >> local.properties
          echo SORAHE=$SORAHE >> local.properties
          echo SORAXA=$SORAXA >> local.properties
          echo SORATED=$SORATED >> local.properties
          echo DUMP_API=$DUMP_API >> local.properties
          echo DUMP_KEY=$DUMP_KEY >> local.properties
          echo CRUNCHYROLL_BASIC_TOKEN=$CRUNCHYROLL_BASIC_TOKEN >> local.properties
          echo CRUNCHYROLL_REFRESH_TOKEN=$CRUNCHYROLL_REFRESH_TOKEN >> local.properties
          echo ANICHI_API=$ANICHI_API >> local.properties
          echo ANICHI_SERVER=$ANICHI_SERVER >> local.properties
          echo ANICHI_ENDPOINT=$ANICHI_ENDPOINT >> local.properties
          echo ANICHI_APP=$ANICHI_APP >> local.properties
          echo PRIMEWIRE_KEY=$PRIMEWIRE_KEY >> local.properties
          echo ZSHOW_API=$ZSHOW_API >> local.properties

      - name: Build Plugins
        run: |
          cd $GITHUB_WORKSPACE/src
          chmod +x gradlew
          ./gradlew make makePluginsJson
          cp **/build/*.cs3 $GITHUB_WORKSPACE/builds
          cp build/plugins.json $GITHUB_WORKSPACE/builds

      - name: Move Loklok
        run: |
          rm $GITHUB_WORKSPACE/builds/Loklok.cs3 || true
          cp $GITHUB_WORKSPACE/builds/stored/Loklok.cs3 $GITHUB_WORKSPACE/builds

      - name: Push builds
        run: |
          cd $GITHUB_WORKSPACE/builds
          git config --local user.email "actions@github.com"
          git config --local user.name "GitHub Actions"
          git add .
          git commit --amend -m "Build $GITHUB_SHA" || exit 0   # do not error if nothing to commit
          git push --force