What is MCReleaser?
MCReleaser is a powerful Java-based command-line tool designed to simplify the process of publishing Minecraft-related artifacts (mods, plugins, datapacks, etc.) to multiple distribution platforms simultaneously. Instead of manually uploading your builds to each platform individually, MCReleaser automates the entire release workflow.MCReleaser supports publishing to 5 major platforms: GitHub Releases, Modrinth, Hangar (PaperMC), Polymart, and CurseForge.
Key Benefits
Multi-Platform Publishing
Publish to GitHub, Modrinth, Hangar, Polymart, and CurseForge with a single command
Flexible Deployment
Use as a CLI tool, Docker container, or GitHub Action based on your workflow
Version Management
Automatically handles game version filtering and version type selection
Concurrent or Sequential
Run platform uploads in parallel for speed or sequentially for control
How It Works
MCReleaser follows a modular architecture that separates concerns and allows for easy extensibility:Architecture Overview
Core Components
Entry Point
The
CLIExecutor class serves as the main entry point, reading system properties and initializing the release process.Platform Bundling
The
BundlePlatform class coordinates multiple platform implementations, managing concurrent or sequential execution.File Management
The
FileBundle record encapsulates the primary artifact and any additional files to be uploaded.Execution Modes
MCReleaser offers flexibility in how you run it:Platform Support
Each supported platform has its own set of configuration options:| Platform | Use Case | Required Variables |
|---|---|---|
| GitHub | Source code releases and changelogs | GITHUB_TOKEN, GITHUB_REPOSITORY, GITHUB_REF |
| Modrinth | Modern mod distribution | MODRINTH_TOKEN, MODRINTH_PROJECT, MODRINTH_LOADERS |
| Hangar | Paper/Velocity plugins | HANGAR_KEY, HANGAR_PROJECT, HANGAR_CHANNEL |
| Polymart | Commercial plugin marketplace | POLYMART_KEY, POLYMART_RESOURCE |
| CurseForge | Legacy mod distribution | CURSEFORGE_TOKEN, CURSEFORGE_PROJECT |
Common Properties
All release operations require these core properties:Next Steps
Quickstart Guide
Get up and running with your first release in minutes
Platform Configuration
Learn how to configure each supported platform