# This workflow will build a Java project with Gradle and cache/restore any dependencies to improve the workflow execution time
# For more information see: https://help.github.com/actions/language-and-framework-guides/building-and-testing-java-with-gradle

name: Build and test

on:
  pull_request:
    branches: [ master, main ]
  push:
    branches: [ master, main ]

jobs:
  build-and-test:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with: 
        fetch-depth: 0
    
    - name: Set up JDK 8
      uses: actions/setup-java@v2
      with:
        java-version: '8'
        distribution: 'adopt'
        cache: gradle
        
    - name: Grant execute permission for gradlew
      run: chmod +x gradlew

    - name: Setup the workspace
      run: ./gradlew setupCIWorkspace

    - name: Build the mod
      run: ./gradlew build

    - name: Run server for 1.5 minutes
      run: |
        mkdir run
        echo "eula=true" > run/eula.txt  
        timeout 90 ./gradlew runServer | tee --append server.log || true

    - name: Test no errors reported during server run
      run: |
        chmod +x .github/scripts/test-no-error-reports.sh
        .github/scripts/test-no-error-reports.sh