Skip to content

Add release-publish workflow and fix broken CI builds - #7

Merged
aquariusnetwork9 merged 1 commit into
mainfrom
claude/github-actions-release-build-7evvww
Jun 21, 2026
Merged

Add release-publish workflow and fix broken CI builds#7
aquariusnetwork9 merged 1 commit into
mainfrom
claude/github-actions-release-build-7evvww

Conversation

@aquariusnetwork9

Copy link
Copy Markdown
Owner

What this does

Sets up GitHub Actions to build the project and publish the jar as the official GitHub Release, and fixes the existing CI which was failing on every run.

Why CI was failing

Every Actions run (dev_build, pull_request) was failing at:

./gradlew: Permission denied
##[error]Process completed with exit code 126.

gradlew was committed without its executable bit (100644), so the wrapper never ran — the build died before Gradle even started. Two further latent issues would have blocked the build right after:

  • gradle.properties pins org.gradle.java.home=C:/Program Files/Java/jdk-21 — a Windows path that doesn't exist on the Linux runners.
  • The workflows used Java 25, but the project comment notes Loom 1.8 + Gradle 8.10 require JDK ≤ 21.

Changes

  • Restore the executable bit on gradlew (100644100755) — unblocks all workflows.
  • New .github/workflows/release.yml — on a v* tag push (or manual workflow_dispatch against an existing tag) it builds with JDK 21 and publishes the jar as an official, non-prerelease GitHub Release. An existing release for the tag is updated in place, so hand-written release notes are preserved and the CI-built jar is attached.
  • Fixed dev_build.yml and pull_request.yml — switched to JDK 21 and pass -Dorg.gradle.java.home="$JAVA_HOME" to override the Windows JDK path. Also scoped dev_build to branch pushes so it no longer double-publishes a snapshot when a release tag is pushed.

The local Windows pin in gradle.properties is intentionally left untouched (it keeps local dev working); CI overrides it on the command line instead.

Validation

Reproduced the CI build locally on JDK 21 with ./gradlew build -Dorg.gradle.java.home="$JAVA_HOME": the wrapper now executes and Gradle 8.10 parses the build under JDK 21 without complaint. The build only stops at resolving the fabric-loom / Meteor dependencies, which is a sandbox network restriction (both maven.fabricmc.net and maven.meteordev.org return 403 here); those repos are reachable from GitHub's hosted runners.

How to cut an official release after merge

Push a version tag, e.g. git tag v1.3.6 && git push origin v1.3.6 — the workflow builds and publishes automatically. Or run Publish Release manually via workflow_dispatch and enter an existing tag (e.g. v1.3.5) to build and attach its jar.

🤖 Generated with Claude Code


Generated by Claude Code

Every Actions run was failing at "./gradlew: Permission denied" (exit 126)
because gradlew was committed without its executable bit. Restore the bit so
the wrapper runs on the Linux runners.

Add .github/workflows/release.yml: on a v* tag push (or manual dispatch
against a tag) it builds with JDK 21 and publishes the jar as an official,
non-prerelease GitHub Release, updating an existing release for the tag in
place so its hand-written notes are preserved.

Fix the existing dev_build and pull_request workflows for the same reasons:
- Use JDK 21 (Loom 1.8 + Gradle 8.10 require JDK <= 21; they were on 25).
- Pass -Dorg.gradle.java.home="$JAVA_HOME" to override the Windows JDK path
  pinned in gradle.properties, which doesn't exist on the runners.
- Scope dev_build to branch pushes so it no longer double-publishes a
  snapshot when a release tag is pushed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01U4Kasbrvf2nTkuadAYeSwV
@aquariusnetwork9
aquariusnetwork9 marked this pull request as ready for review June 21, 2026 15:36
@aquariusnetwork9
aquariusnetwork9 merged commit 466a09b into main Jun 21, 2026
1 of 2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants