name: Yatopia Build Script

on:
  push:
    paths-ignore:
      - '*.md'
      - 'Jenkinsfile'
    branches:
      - ver/1.16.5
      - ver/1.16.4
      - ver/1.16.3
      - ver/1.16.2
      - ver/1.16.1
      - leaflight/ver/1.16.4
      - leaflight/ver/1.16.5
  pull_request:
    paths-ignore:
      - '*.md'
      - 'Jenkinsfile'
        
jobs:
  build:

    runs-on: ubuntu-latest

    strategy:
      matrix:
        java: [15, 11, 8]
      fail-fast: false

    steps:
    - uses: actions/checkout@v2
    - name: Set up JDK ${{ matrix.java }}
      uses: actions/setup-java@v1
      with:
        java-version: ${{ matrix.java }}
        
    - name: Pull Gradle Cache
      uses: actions/cache@v2
      id: gradle-cache
      with:
        path: ~/.gradle
        key: ${{ runner.os }}-maven-${{ hashFiles('gradle/wrapper/gradle-wrapper.properties') }}-java-${{ matrix.java }}
            
    - name: Setup Yatopia Project
      run: |
         git config --global user.email "ci@github.com"
         git config --global user.name "Github CI"
         git config --global gc.auto 0
         sudo chmod -R -f 777 ./gradlew
         ./gradlew initGitSubmodules
         
    - name: Get MC Version
      run: echo "::set-output name=mcver::$(cat "Paper/work/BuildData/info.json"  | grep minecraftVersion | cut -d '"' -f 4)" 
      id: mcver
      
    - name: Pull Minecraft Decompile Cache
      uses: actions/cache@v2
      id: decompile-cache
      with:
        path: Paper/work/Minecraft/${{ steps.mcver.outputs.mcver }}
        key: ${{ steps.mcver.outputs.mcver }}-${{ runner.os }}-java-${{ matrix.java }}-minecraft-decomp
        
    - name: Apply Patches
      run: |
        ./gradlew setupUpstream
        ./gradlew applyPatches
                 
    - name: Pull Maven Cache
      uses: actions/cache@v2
      id: maven-cache
      with:
        path: ~/.m2/repository
        key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}

    - name: Build Yatopia
      run: |
        ./gradlew clean build yatoclip
        
    - name: Upload Artifact
      if: github.ref != 'refs/heads/ver/1.16.4'
      uses: actions/upload-artifact@v2
      with:
        name: Yatopia-${{ matrix.java }}
        path: yatopia-1.16.5-yatoclip.jar
      
