# This workflow automatically tests new commits and pull requests as they come in.
# Note that this does not upload any artifacts, you will need to compile mcMMO manually
# if you wish to create the actual jar.
name: Compile and test

on:
  # We run our tests whenever the pom or a source file was touched.
  # There is no need to run Maven when only the changelog was touched.
  # We may also want to re-run this workflow when the workflow file itself
  # was updated too.
  push:
    paths:
    - 'src/**'
    - 'pom.xml'
    - '.github/workflows/maven.yml'

  # Whenever someone submits a new pull request which modified the pom or a source file,
  # we want to ensure it compiles successfully and that all tests will pass.
  pull_request:
    paths:
    - 'src/**'
    - 'pom.xml'

jobs:
  compile:
    name: Maven compiler
    runs-on: ubuntu-latest
    steps:

    # 1. Check out the current working tree
    - name: Checkout repository
      uses: actions/checkout@v4

    # 2. Setup Java 17 JDK (Adopt)
    - name: Java 17 setup
      uses: actions/setup-java@v4
      with:
        distribution: 'adopt'
        java-package: jdk
        java-version: '17'

    # 3. Setup local Maven package cache to speed up building
    - name: Cache Maven packages
      uses: actions/cache@v4
      with:
        path: ~/.m2
        key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }}
        restore-keys: ${{ runner.os }}-m2

    # 4. Build via Maven 
    - name: Build via Maven
      run: mvn verify -B -Psql-tests --file pom.xml -DdisableXmlReport=true
