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.
It also includes an nix flake
for you fellow nix enjoyers! The actions also use it!
-
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! 🚀