Build Packwiz hashes in published images
Publish Packwiz site / publish (push) Successful in 1m53s

This commit is contained in:
2026-09-04 23:27:12 +01:00
parent 70cb26e762
commit 340b91aad7
3 changed files with 35 additions and 3 deletions
+5 -2
View File
@@ -173,8 +173,11 @@ Pterodactyl is responsible for Java, server process management and resources.
Kubernetes/SWS provides static hosting for the published Packwiz repositories.
The publishing workflow runs [`scripts/build-site.sh`](../scripts/build-site.sh),
which exports committed Git revisions into the documented URL layout, then
builds the multi-architecture image
which exports committed Git revisions into the documented URL layout. Source
packs intentionally keep `no-internal-hashes = true`; the workflow runs
`packwiz refresh --build` only against the exported copies under `.build/site`
so the image contains installer-ready hashes without committing generated hash
churn. It then builds the multi-architecture image
`tea.ahmza.com/ahmza.com/mcpacks-site`.
The workflow finally commits that image's immutable OCI digest to
+17 -1
View File
@@ -36,6 +36,17 @@ jobs:
# explicitly ensures /dev still contains today's development branch.
run: git fetch origin main:refs/remotes/origin/main --tags --force
- name: Set up Go for Packwiz
uses: actions/setup-go@v5
with:
go-version: "1.23.x"
cache: false
- name: Install pinned Packwiz
# Packwiz has no stable binary release channel. Pinning the source
# revision makes image builds reproducible instead of following latest.
run: go install github.com/packwiz/packwiz@dfd8b68a4796c763e25bad50265ea1f1233e24f1
- name: Assemble static Packwiz site
env:
EVENT_REF: ${{ gitea.ref }}
@@ -50,8 +61,13 @@ jobs:
refs/tags/*) dev_ref=origin/main ;;
*) dev_ref=$EVENT_SHA ;;
esac
./scripts/build-site.sh "$dev_ref"
PACKWIZ_BIN="$(go env GOPATH)/bin/packwiz" \
./scripts/build-site.sh "$dev_ref"
test -s .build/site/forever/dev/pack.toml
grep -q '^hash = "[0-9a-f]\{64\}"$' \
.build/site/forever/dev/pack.toml
# Building distribution metadata must not alter tracked source packs.
git diff --exit-code -- forever playground
- name: Verify tagged release output
if: startsWith(gitea.ref, 'refs/tags/')
+13
View File
@@ -8,10 +8,16 @@ repo_root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
cd "$repo_root"
dev_ref=${1:-HEAD}
packwiz_bin=${PACKWIZ_BIN:-packwiz}
build_root="$repo_root/.build"
site_root="$build_root/site"
work_root="$build_root/work"
if ! command -v "$packwiz_bin" >/dev/null 2>&1; then
echo "Packwiz executable not found: $packwiz_bin" >&2
exit 1
fi
rm -rf "$site_root" "$work_root"
mkdir -p "$site_root/forever/releases" "$work_root"
@@ -30,6 +36,13 @@ export_pack() {
git archive "$revision" "$pack" | tar -x -C "$scratch"
mv "$scratch/$pack" "$destination"
# Source packs intentionally omit internal hashes. Generate the distributable
# index only in the ephemeral image-build tree, never in the Git checkout.
(
cd "$destination"
"$packwiz_bin" refresh --build
)
}
# main is always the development source, including when this script runs for a