Update changelog.html (#28) #36
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# 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 ] | |
push: | |
branches: [ master ] | |
jobs: | |
build-and-test: | |
runs-on: ubuntu-latest | |
steps: | |
- name: Install Ubuntu dependencies | |
run: | | |
sudo apt-get update -y | |
sudo apt-get install -y mesa-utils xvfb x11-xserver-utils | |
- name: Checkout mod repo | |
uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
- name: Checkout workflows repo | |
uses: actions/checkout@v4 | |
with: | |
repository: GTNewHorizons/GTNH-Actions-Workflows | |
path: .gtnh-workflows | |
fetch-depth: 0 | |
- name: Validate gradle wrapper checksum | |
uses: gradle/wrapper-validation-action@v2 | |
- name: Set up JDK versions | |
uses: actions/setup-java@v4 | |
with: | |
java-version: | | |
8 | |
21 | |
17 | |
distribution: 'zulu' | |
cache: gradle | |
- name: Grant execute permission for gradlew | |
run: chmod +x gradlew | |
- name: Setup the workspace | |
run: ./gradlew --build-cache --info --stacktrace setupCIWorkspace | |
- name: Compile the mod | |
run: ./gradlew --build-cache --info --stacktrace assemble | |
- name: Attach compilation artifacts | |
uses: actions/upload-artifact@v4 | |
with: | |
name: ${{ github.repository_id }}-build-libs | |
path: build/libs/ | |
retention-days: 31 | |
- name: Run post-build checks | |
id: build_mod | |
run: xvfb-run --server-args="-screen 0 1366x768x24" ./gradlew --build-cache --info --stacktrace build | |
- name: Attach gradle reports | |
if: failure() && steps.build_mod.conclusion == 'failure' | |
uses: actions/upload-artifact@v4 | |
continue-on-error: true | |
with: | |
name: ${{ github.repository_id }}-reports | |
path: build/reports/ | |
retention-days: 31 | |
- name: Run server for 90 seconds | |
run: | | |
mkdir -p run | |
echo "eula=true" > run/eula.txt | |
# Set a constant seed with a village at spawn | |
echo "level-seed=-6202107849386030209\nonline-mode=true\n" > run/server.properties | |
echo "stop" > run/stop.txt | |
timeout 90 ./gradlew --build-cache --info --stacktrace runServer 2>&1 < run/stop.txt | tee -a server.log || true | |
- name: Test no errors reported during server run | |
run: | | |
chmod +x .gtnh-workflows/scripts/test_no_error_reports | |
.gtnh-workflows/scripts/test_no_error_reports | |
- name: Test no prerelease dependencies used | |
run: | | |
! grep -F -- "-pre" dependencies.gradle* |