Skip to content

Give 1.21 love

Give 1.21 love #5421

Workflow file for this run

name: Build pull request on push
on:
pull_request:
paths: ['**']
# Cancel previous jobs if PR gets another push
concurrency:
group: PR-build-${{ github.ref }}
cancel-in-progress: true
jobs:
build:
runs-on: ubuntu-latest
env:
VERSION_SUFFIX: "PR-${{ github.event.number }}"
steps:
- uses: actions/checkout@v4
- name: Check Path Filter
uses: dorny/paths-filter@v3
id: filter
with:
filters: |
code:
- 'src/**'
- '*.gradle'
- 'gradle.properties'
- 'gradlew*'
- 'gradle/**'
- name: Setup Build
if: steps.filter.outputs.code == 'true'
uses: ./.github/actions/build_setup
- name: Build
if: steps.filter.outputs.code == 'true'
run: ./gradlew assemble
- name: Run GameTests
if: steps.filter.outputs.code == 'true'
id: gametest
continue-on-error: true
run: ./gradlew runGameTestServer
- name: Add "Tests Passed" label
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'success'
uses: actions-ecosystem/action-add-labels@v1
with:
labels: 'Tests: Passed'
- name: Remove "Tests Failed" label
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'success'
uses: actions-ecosystem/action-remove-labels@v1
with:
labels: 'Tests: Failed'
- name: Add "Tests Failed" label
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
uses: actions-ecosystem/action-add-labels@v1
with:
labels: 'Tests: Failed'
- name: Remove "Tests Passed" label
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
uses: actions-ecosystem/action-remove-labels@v1
with:
labels: 'Tests: Passed'
- name: Fail on GameTest failures
if: steps.filter.outputs.code == 'true' && steps.gametest.outcome == 'failure'
run: exit 1
- name: Rename Jars
if: steps.filter.outputs.code == 'true'
run: for file in build/libs/*; do mv "$file" "${file/.jar/-${{ env.VERSION_SUFFIX }}.jar}"; done;
- name: Upload All Artifacts
if: steps.filter.outputs.code == 'true'
uses: actions/upload-artifact@v4.0.0
with:
name: Full Package
path: build/libs/*
retention-days: 15
- name: Upload Main Jar
if: steps.filter.outputs.code == 'true'
uses: actions/upload-artifact@v4.0.0
with:
name: Main Jar
path: build/libs/*[0-9]-PR-*.jar
retention-days: 15