Add a manual workflow that publishes a Gitea release to Modrinth
"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]>
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
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
|
||||
Reference in New Issue
Block a user