Skip to content

ci: GitHub Actions — build + release workflows#20

Merged
BrainRTP merged 1 commit intomasterfrom
task/cicd
Apr 14, 2026
Merged

ci: GitHub Actions — build + release workflows#20
BrainRTP merged 1 commit intomasterfrom
task/cicd

Conversation

@BrainRTP
Copy link
Copy Markdown
Collaborator

Adds two workflows modelled after the NanoLimbo setup, adapted for the AbstractMenus stack (JDK 21, Gradle wrapper, shadowJar target).

  • .github/workflows/build.yml Triggers on pushes to master/main/develop + feature/task/fix branches, pull requests, and manual dispatch. Runs ./gradlew build shadowJar on Ubuntu with Temurin JDK 21 and the Gradle cache (via gradle/actions/setup-gradle@v4). Publishes JUnit test report (mikepenz/action-junit-report) and the shaded JAR as an artifact (14-day retention).

  • .github/workflows/release.yml Triggers when a GitHub release is published (and supports manual re-run with a tag input). Rebuilds shadowJar from the tagged commit and attaches AbstractMenus-<version>.jar to the release via softprops/action-gh-release@v2.

    Includes a safety check: if the tag version (with optional leading
    v stripped) does not match version '...' in build.gradle, the
    workflow fails loudly rather than publishing a mismatched asset.

  • .github/RELEASE.md Short release-flow guide: branching model (GitHub Flow with a develop integration branch), the five-step cut-a-release procedure, how to re-attach a JAR to an existing release, a hotfix flow, and notes on pre-releases.

NanoLimbo uses actions/upload-release-asset@v1 which is deprecated; swapped for the actively-maintained softprops/action-gh-release@v2.

Adds two workflows modelled after the NanoLimbo setup, adapted for the
AbstractMenus stack (JDK 21, Gradle wrapper, shadowJar target).

- .github/workflows/build.yml
    Triggers on pushes to master/main/develop + feature/task/fix
    branches, pull requests, and manual dispatch. Runs
    `./gradlew build shadowJar` on Ubuntu with Temurin JDK 21 and the
    Gradle cache (via gradle/actions/setup-gradle@v4). Publishes JUnit
    test report (mikepenz/action-junit-report) and the shaded JAR as
    an artifact (14-day retention).

- .github/workflows/release.yml
    Triggers when a GitHub release is published (and supports manual
    re-run with a tag input). Rebuilds shadowJar from the tagged
    commit and attaches `AbstractMenus-<version>.jar` to the release
    via softprops/action-gh-release@v2.

    Includes a safety check: if the tag version (with optional leading
    `v` stripped) does not match `version '...'` in build.gradle, the
    workflow fails loudly rather than publishing a mismatched asset.

- .github/RELEASE.md
    Short release-flow guide: branching model (GitHub Flow with a
    develop integration branch), the five-step cut-a-release
    procedure, how to re-attach a JAR to an existing release, a
    hotfix flow, and notes on pre-releases.

NanoLimbo uses actions/upload-release-asset@v1 which is deprecated;
swapped for the actively-maintained softprops/action-gh-release@v2.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@BrainRTP BrainRTP merged commit 3374437 into master Apr 14, 2026
2 checks passed
@BrainRTP BrainRTP deleted the task/cicd branch April 14, 2026 19:23
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.

1 participant