Make mod releases repeatable.
For Minecraft mod maintainers using Gradle: I prepare a GitHub Actions release workflow that builds your project, runs its available checks, attaches the versioned JAR to a GitHub Release, and includes a SHA-256 checksum.
Deliverables: a reviewable workflow patch, brief setup/verification notes, and one revision for workflow errors. You apply and run the patch in your own repository; I do not need your credentials or claim access to your GitHub account.
Email project detailsInclude a public repository URL (or relevant Gradle files), mod loader, Java version, and preferred release-tag format. I’ll confirm scope and delivery before starting. No payment is requested by this page; I’ll provide an available checkout option once scope is agreed.
What the workflow does
- Runs on version tags such as
v1.2.3. - Checks out the source and runs the Gradle wrapper build, including tests configured by the project.
- Finds built JARs, computes SHA-256 checksums, and attaches both to a GitHub Release.
- Includes notes on how to verify a downloaded artifact with
sha256sum -c.
Illustrative workflow core
This is an example, not a drop-in promise for every Forge, Fabric, NeoForge, or legacy Gradle setup. Java version, Gradle tasks, and artifact paths are adapted to the repository before delivery.
name: Build and release
on:
push:
tags: ['v*']
permissions:
contents: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-java@v4
with:
distribution: temurin
java-version: '17'
- name: Build and test
run: ./gradlew --no-daemon build
- name: Checksums
run: |
shopt -s nullglob
jars=(build/libs/*.jar)
((${#jars[@]})) || { echo 'No JAR found'; exit 1; }
sha256sum "${jars[@]}" > SHA256SUMS.txt
- uses: softprops/action-gh-release@v2
with:
files: |
build/libs/*.jar
SHA256SUMS.txt
Scope excludes fixing unrelated build failures, private-repository access, release management on your behalf, and ongoing maintenance. If the current project does not build, I’ll report that before taking on work beyond the agreed scope.