Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
99 changes: 99 additions & 0 deletions .github/workflows/modrinth-publish.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
name: Publish to Modrinth

# Triggers when you publish a GitHub Release
on:
release:
types: [published]
workflow_dispatch:
inputs:
tag:
description: 'Release tag to publish (e.g. 1.0.4)'
required: true
type: string
changelog:
description: 'Changelog / release notes (markdown)'
required: false
type: string

jobs:
publish:
runs-on: ubuntu-latest
permissions:
contents: read

steps:
# 1. Check out the repository at the release tag
- name: Checkout repository
uses: actions/checkout@v4

# 2. Set up Java 21 (required by StrangerRealms' build)
- name: Set up Java 21
uses: actions/setup-java@v4
with:
java-version: '21'
distribution: 'temurin'

# 3. Cache Maven dependencies to speed up builds
- 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 the JAR
# GIT_BRANCH=origin/master activates the master profile in pom.xml,
# which sets revision=${build.version} (no -SNAPSHOT suffix) and
# clears build.number, producing StrangerRealms-{version}.jar.
- name: Build with Maven
run: mvn -B package --no-transfer-progress
env:
GIT_BRANCH: origin/master

# 5. Upload the JAR to Modrinth
#
# Prerequisites — add these secrets in your GitHub repo settings
# (Settings → Secrets and variables → Actions):
#
# MODRINTH_TOKEN — personal access token from https://modrinth.com/settings/pats
# (scope: "Create versions")
# MODRINTH_PROJECT_ID — your Modrinth project ID, visible on your project page
# under the three-dot menu ("Copy ID")
#
- name: Publish to Modrinth
uses: cloudnode-pro/modrinth-publish@v2
with:
token: ${{ secrets.MODRINTH_TOKEN }}
project: ${{ secrets.MODRINTH_PROJECT_ID }}

# Use the release tag, or the manually supplied tag when triggered via workflow_dispatch
version: ${{ github.event.release.tag_name || inputs.tag }}

# Use the GitHub release body, or the manually supplied changelog for workflow_dispatch
changelog: ${{ github.event.release.body || inputs.changelog }}

# Release channel — auto-detected from version string:
# *-alpha → alpha, *-beta → beta, anything else → release
# Override here if needed: release | beta | alpha
# channel: release

# StrangerRealms is a BentoBox game mode add-on running on Paper/Purpur
loaders: |-
paper
purpur

# Minecraft versions this release supports.
# Update this list when you start supporting newer or older MC versions.
game-versions: |-
1.21.5
1.21.6
1.21.7
1.21.8
1.21.9
1.21.10
1.21.11
26.1
26.1.1

# Path to the built JAR — Maven produces StrangerRealms-{version}.jar in target/
files: target/StrangerRealms-${{ github.event.release.tag_name || inputs.tag }}.jar
Loading