From fe19d6345d52386f7794adc9329e79880f7c8f34 Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 28 Jun 2026 09:01:49 -0700 Subject: [PATCH 1/3] ci: add CurseForge publish workflow (publishes the release asset) Publish the jar attached to each GitHub release to CurseForge via the shared BentoBoxWorld/.github reusable workflow, downloading the release asset instead of rebuilding from source. Mirrors the BentoBox core setup. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/publish.yml | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index e3eb4ddc..ff17021d 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,19 +1,30 @@ # Level — .github/workflows/publish.yml -# CurseForge-first rollout. Hangar left blank; add its slug later to enable Hangar. +# Publishes the jar attached to a GitHub release to CurseForge (and Hangar once a +# slug is set) via the shared BentoBoxWorld/.github reusable workflow. It downloads +# the release asset rather than rebuilding from source, so a dependency-repo outage +# can't block publishing. Includes workflow_dispatch to (re)publish a given version. -name: Publish release +name: Publish release to CurseForge on: release: types: [published] + workflow_dispatch: + inputs: + version: + description: "Version to publish (e.g. 1.2.3)" + required: true + type: string jobs: publish: - uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@main + uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@master with: - hangar_slug: "" + use_release_asset: "true" # publish the jar attached to the release; do not rebuild + hangar_slug: "" # set the Hangar project slug to enable Hangar publishing curseforge_id: "1514824" - game_versions: "26.1.2,26.1.1,26.1,1.21.11,1.21.10,1.21.9,1.21.8,1.21.7,1.21.6" + game_versions: "26.2,26.1.2,26.1.1,26.1,1.21.11,1.21.10,1.21.9,1.21.8,1.21.7,1.21.6,1.21.5" + version: ${{ inputs.version }} # empty on release events -> falls back to the release tag secrets: HANGAR_API_KEY: ${{ secrets.HANGAR_API_KEY }} CURSEFORGE_TOKEN: ${{ secrets.CURSEFORGE_TOKEN }} From a6e5e1b59db5e5ee8b7d7ee5b27ed9a086800d0d Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 28 Jun 2026 11:16:45 -0700 Subject: [PATCH 2/3] ci: pin reusable workflow to SHA and enable Hangar publish Pin bentoboxworld/.github publish-platforms.yml to commit e0c5d98f5e6ef9ea7c9a28afad05f4c07bcde898 (Sonar githubactions:S7637) and set the Hangar slug so releases publish to Hangar alongside CurseForge. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/publish.yml | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ff17021d..0ba0fa88 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -1,10 +1,10 @@ # Level — .github/workflows/publish.yml -# Publishes the jar attached to a GitHub release to CurseForge (and Hangar once a -# slug is set) via the shared BentoBoxWorld/.github reusable workflow. It downloads -# the release asset rather than rebuilding from source, so a dependency-repo outage -# can't block publishing. Includes workflow_dispatch to (re)publish a given version. +# Publishes the jar attached to a GitHub release to CurseForge and Hangar via the +# shared BentoBoxWorld/.github reusable workflow. Downloads the release asset instead of +# rebuilding from source. The reusable workflow is pinned to a commit SHA (Sonar +# githubactions:S7637). workflow_dispatch lets you (re)publish a given version. -name: Publish release to CurseForge +name: Publish release to CurseForge and Hangar on: release: @@ -18,10 +18,10 @@ on: jobs: publish: - uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@master + uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@e0c5d98f5e6ef9ea7c9a28afad05f4c07bcde898 # master with: use_release_asset: "true" # publish the jar attached to the release; do not rebuild - hangar_slug: "" # set the Hangar project slug to enable Hangar publishing + hangar_slug: "Level" # blank = skip Hangar curseforge_id: "1514824" game_versions: "26.2,26.1.2,26.1.1,26.1,1.21.11,1.21.10,1.21.9,1.21.8,1.21.7,1.21.6,1.21.5" version: ${{ inputs.version }} # empty on release events -> falls back to the release tag From a08946b6c7153a677744a8eb0f4bf2c7d03dd39c Mon Sep 17 00:00:00 2001 From: tastybento Date: Sun, 28 Jun 2026 11:51:07 -0700 Subject: [PATCH 3/3] ci: bump pinned reusable workflow to 71bf927bce32586216baa6995f21852d944b98b9 Picks up the split into independent CurseForge and Hangar jobs so neither platform can block the other. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/publish.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0ba0fa88..320aaf27 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -18,7 +18,7 @@ on: jobs: publish: - uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@e0c5d98f5e6ef9ea7c9a28afad05f4c07bcde898 # master + uses: bentoboxworld/.github/.github/workflows/publish-platforms.yml@71bf927bce32586216baa6995f21852d944b98b9 # master with: use_release_asset: "true" # publish the jar attached to the release; do not rebuild hangar_slug: "Level" # blank = skip Hangar