Configuration Methods
There are two ways to provide configuration values to MCReleaser:Environment Variables
Environment variables useUPPER_CASE_WITH_UNDERSCORES naming convention. This is the preferred method when using Docker or CI/CD systems.
System Properties
System properties usecamelCase naming convention and are passed with the -D flag. This is the preferred method for direct Java execution.
Naming Convention Conversion
MCReleaser automatically handles the conversion between environment variable names and system property names:- Environment variables:
UPPER_CASE_WITH_UNDERSCORES - System properties:
camelCase
- Convert from camelCase to UPPER_CASE by inserting underscores before uppercase letters
- Convert all characters to uppercase
Examples
| System Property | Environment Variable |
|---|---|
name | NAME |
version | VERSION |
gameVersions | GAME_VERSIONS |
githubToken | GITHUB_TOKEN |
modrinthProject | MODRINTH_PROJECT |
curseforgeReleaseType | CURSEFORGE_RELEASE_TYPE |
PropertyKey class:
/workspace/source/core/src/main/java/me/hsgamer/mcreleaser/core/property/PropertyKey.java:18
Value Resolution Priority
When resolving configuration values, MCReleaser checks sources in the following order:- Environment variables (checked first)
- System properties (checked if environment variable is not set)
/workspace/source/core/src/main/java/me/hsgamer/mcreleaser/core/property/PropertyKey.java:45
Configuration Categories
Configuration variables are organized into several categories:- Common - Required variables for all platforms (NAME, VERSION, DESCRIPTION, etc.)
- GitHub - GitHub Releases specific configuration
- Modrinth - Modrinth specific configuration
- Hangar - Hangar (PaperMC) specific configuration
- Polymart - Polymart specific configuration
- CurseForge - CurseForge specific configuration
Missing Variable Handling
By default, MCReleaser silently skips platforms when required variables are missing. You can enable announcements for missing variables:When enabled, MCReleaser will log error messages listing all missing required variables for each platform.