name: "Build"

on:
  workflow_dispatch: ~
  push:
    paths: [ "**.java" ]
    branches: [ "master" ]
  pull_request:
    paths: [ "**.java" ]
    branches: [ "master" ]
    types:
      - opened
      - synchronize
      - reopened

jobs:
  Build-Jar:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3

      - name: Setup Java
        uses: actions/setup-java@v3
        with:
          java-version: '17'
          distribution: 'temurin'

      - name: Cache gradle files
        uses: actions/cache@v2
        with:
          path: |
            ~/.gradle/caches
            ~/.gradle/wrapper
            ./.gradle/loom-cache
          key: ${{ runner.os }}-gradle-${{ hashFiles('*.gradle', 'gradle.properties', '**/*.accesswidener') }}
          restore-keys: |
            ${{ runner.os }}-gradle-

      - name: Download latest grasscutter jar
        run: wget https://nightly.link/Grasscutters/Grasscutter/workflows/build/development/Grasscutter.zip && mkdir lib && unzip Grasscutter.zip -d lib
        
      - name: Change permission
        run: chmod +x gradlew
      
      - name: Run Gradle
        run: ./gradlew jar
        
      - name: Upload build
        uses: actions/upload-artifact@v3
        with:
          name: openchat
          path: openchat*.jar
