Streamline the Minecraft Modpack Release Process with GitHub Actions!
mc-modpack-kit is a GitHub Actions workflow template designed to simplify the release process of Minecraft modpacks using a structured monorepo approach. It automates essential tasks such as versioning, modpack building, and publishing on platforms like Modrinth and CurseForge.
-
Monorepo Structure
Embrace the power of organization with a monorepo-style architecture. Each subdirectory represents a different modpack version or loader type, streamlining your management of multiple modpack variations within a single repository.
Example subdirectories:
fabric/
: Fabric loader version.forge/
: Forge loader version.
You can create more just by initializing packwiz in the said directory of your choosing.
-
Automated Releases
Experience effortless version control with Release Please, which generates changelogs and handles version releases automatically, in sync with your pull requests. Maintain clarity with Conventional Commit Messages.
Examples:
feat(modpack/<mod>): <description>
for adding new features, configurations or content.chore(modpack/<mod>): <description>
for routine maintenance tasks or cleanups.update(modpack/<mod>): update <mod>
for updating mods to newer versions.mod(modpack/<mod>): add <mod>
for introducing new mods to the modpack.
-
Mod Updates
Update your mods effortlessly by utilizing the
update.yml
workflow located in.github/workflows/update.yml
. This action efficiently updates all mods across all subdirectories.
-
Fork the Repository
Start by forking this repository to your GitHub account.
-
Set Up Secrets and Permissions
- Navigate to "Settings" -> "Secrets" and add the following secrets:
MODRINTH_TOKEN
,MODRINTH_ID
for Modrinth authentication.CURSEFORGE_TOKEN
,CURSEFORGE_ID
for CurseForge authentication.
- Enable "Allow GitHub Actions to create and approve pull requests" under "Settings" -> "Actions" -> "General" -> "Workflow permissions".
- Navigate to "Settings" -> "Secrets" and add the following secrets:
-
Initialize Your Modpack
- Generate a
pack.toml
file usingpackwiz
(installation instructions here) within a modpack folder. - Begin by running
packwiz init
, preferably within themain
directory.
- Generate a
-
Set a release channel
- By default this template uses the
beta (0.1.0)
channel, you can switch it torelease (1.0.0)
when you are ready! - This can be done via executing
.github/workflows/bump-version-release.yml
!
- By default this template uses the
-
You are good to go!
- You can now merge the release PR that release please has made, sit back and enjoy a cup of coffee! ☕ ^-^
If you encounter any issues or need assistance, consult the Issues page or reach out via my GitHub profile.
This project is licensed under the CC0 1.0 Universal License.
- This project makes effective use of GitHub Actions and various tools to automate the modpack release process.
- A heartfelt ❤️ thank you to Rafii for helping with this!
- Special thanks to the GitHub community for their contributions and support.
Contributions, feedback, and improvements are warmly welcomed! Let's propel this project forward together! 🚀