"Publish to Modrinth" (workflow_dispatch, tag + dry_run inputs) takes the jars the Release workflow attached to a Gitea release and creates one Modrinth version per jar: version_number <version>+<mc>, that Minecraft version, fabric loader, Fabric API as a required dependency, the release notes as the changelog, and alpha/beta/release from the tag. It doesn't rebuild, skips versions already on Modrinth, and downloads jars through the public URL (Gitea's reported URLs use its internal ROOT_URL). Needs a MODRINTH_TOKEN secret with the "Create versions" scope. Co-Authored-By: Claude Opus 5.5 <[email protected]>
41 lines
1.2 KiB
YAML
41 lines
1.2 KiB
YAML
name: Publish to Modrinth
|
|
|
|
# Publishes the jars already attached to a Gitea release (built by the Release
|
|
# workflow) to Modrinth, one version per Minecraft version. Run it manually
|
|
# after smoke-testing the release. It doesn't rebuild anything, and versions
|
|
# already on Modrinth are skipped, so re-running is safe.
|
|
#
|
|
# Needs a MODRINTH_TOKEN repository secret: a Modrinth PAT with the
|
|
# "Create versions" scope.
|
|
on:
|
|
workflow_dispatch:
|
|
inputs:
|
|
tag:
|
|
description: Tag of the Gitea release to publish
|
|
required: true
|
|
dry_run:
|
|
description: Only check and print what would be published
|
|
type: boolean
|
|
default: false
|
|
|
|
jobs:
|
|
publish:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout
|
|
uses: actions/checkout@v4
|
|
|
|
- name: Set up Python
|
|
uses: actions/setup-python@v5
|
|
with:
|
|
python-version: "3.12"
|
|
|
|
- name: Publish to Modrinth
|
|
env:
|
|
TAG: ${{ inputs.tag }}
|
|
DRY_RUN: ${{ inputs.dry_run }}
|
|
SERVER_URL: ${{ github.server_url }}
|
|
REPO: ${{ github.repository }}
|
|
MODRINTH_TOKEN: ${{ secrets.MODRINTH_TOKEN }}
|
|
run: python .gitea/scripts/publish_modrinth.py
|