name: "Build"
on:
  workflow_dispatch: ~
  push:
    paths:
      - "**.java"
    branches:
      - "stable"
      - "development"
  pull_request:
    paths:
      - "**.java"
    types:
      - opened
      - synchronize
      - reopened
jobs:
  Build-Server-Jar:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout
        uses: actions/checkout@v3
      - name: Setup Java
        uses: actions/setup-java@v3
        with:
          distribution: temurin
          java-version: '17'
      - 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: Run Gradle
        run: ./gradlew && ./gradlew jar
      - name: Upload build
        uses: actions/upload-artifact@v3
        with:
          name: Grasscutter
          path: grasscutter-*.jar
