Skip to content

feat!: add PlaceholderAPI integration #7

feat!: add PlaceholderAPI integration

feat!: add PlaceholderAPI integration #7

Workflow file for this run

name: Development build
on:
push:
branches:
- dev
jobs:
prepare:
runs-on: ubuntu-latest
outputs:
name: ${{ steps.details.outputs.name }}
version: ${{ steps.details.outputs.version }}
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Extract project details
id: details
run: |
echo "name=$(grep 'rootProject.name' settings.gradle.kts | awk -F "=" '{print $2}' | tr -d ' \"\n')" >> $GITHUB_OUTPUT
echo "version=${GITHUB_REF##*/}-${GITHUB_SHA::7}" >> $GITHUB_OUTPUT
test:
needs: prepare
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
check-latest: true
- name: Run tests
env:
VERSION: ${{ needs.prepare.outputs.version }}
run: ./gradlew test
- name: Upload test results
if: always()
uses: actions/upload-artifact@v4
with:
name: Test results
path: |
**/build/test-results/test/*.xml
**/build/reports/tests/test/
- name: Test summary
if: always()
run: |
echo "## Test Results" >> $GITHUB_STEP_SUMMARY
find . -name "TEST-*.xml" -type f | while read file; do
suite=$(grep -oP 'name="\K[^"]+' "$file" | head -1)
tests=$(grep -oP 'tests="\K[^"]+' "$file" | head -1)
failures=$(grep -oP 'failures="\K[^"]+' "$file" | head -1)
errors=$(grep -oP 'errors="\K[^"]+' "$file" | head -1)
echo "- **$suite**: $tests tests, $failures failures, $errors errors" >> $GITHUB_STEP_SUMMARY
done
build:
needs: [prepare, test]
runs-on: ubuntu-latest
permissions:
contents: read
packages: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Validate gradle wrapper
uses: gradle/actions/wrapper-validation@v3
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
check-latest: true
- name: Build project
env:
VERSION: ${{ needs.prepare.outputs.version }}
run: ./gradlew shadowJar
- name: Create output directory
run: mkdir output
- name: Move API
run: mv intercept-api/build/libs/intercept-api-${{ needs.prepare.outputs.version }}.jar output/${{ needs.prepare.outputs.name }}-API-${{ needs.prepare.outputs.version }}.jar
- name: Move platform jars
run: |
mv build/libs/${{ needs.prepare.outputs.name }}-${{ needs.prepare.outputs.version }}-PAPER.jar output/${{ needs.prepare.outputs.name }}-PAPER-${{ needs.prepare.outputs.version }}.jar
- name: Archive artifacts
uses: actions/upload-artifact@v4
with:
name: Build artifacts
path: output/
publish:
needs: prepare
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- name: Checkout repository
uses: actions/checkout@v4
- name: Set up JDK 21
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
check-latest: true
- name: Publish API to Maven repository
env:
PUBLISH_USER: ${{ secrets.PUBLISH_USER }}
PUBLISH_TOKEN: ${{ secrets.PUBLISH_TOKEN }}
VERSION: ${{ needs.prepare.outputs.version }}
PUBLISH_REALM: development
run: ./gradlew --no-daemon publish