first cycle lab release

This commit is contained in:
2026-10-04 00:30:09 +07:00
parent 85f6897365
commit d134daafd8
92 changed files with 5623 additions and 9 deletions
+34
View File
@@ -0,0 +1,34 @@
#!/usr/bin/env bash
# Integration spike only: no release CLI or deployment state machine.
set -euo pipefail
task_root=$(cd -- "$(dirname -- "${BASH_SOURCE[0]}")/.." && pwd)
task_source=${1:-"$task_root/pack"}
task_source=$(cd -- "$task_source" && pwd)
source "$task_root/toolchain.lock.env"
printf '%s %s\n' "$PACKWIZ_BINARY_SHA256" "$task_root/.tools/packwiz/packwiz" | sha256sum -c -
task_name=$(sed -n 's/^name = "\([a-zA-Z0-9._-]*\)"$/\1/p' "$task_source/pack.toml")
task_version=$(sed -n 's/^version = "\([a-zA-Z0-9._-]*\)"$/\1/p' "$task_source/pack.toml")
[[ -n "$task_name" && -n "$task_version" ]] || { echo 'Invalid pack name/version.' >&2; exit 1; }
task_release="$task_root/dist/$task_name-$task_version"
[[ ! -e "$task_release" ]] || { echo "Release already exists: $task_release; use a new pack version." >&2; exit 1; }
mkdir -p "$task_root/dist"
task_tmp=$(mktemp -d "$task_root/.tools/spike-build.XXXXXX")
trap 'rm -rf -- "$task_tmp"' EXIT
cp -a "$task_source" "$task_tmp/source"
mkdir "$task_tmp/release"
cd "$task_tmp/source"
task_packwiz=("$task_root/.tools/packwiz/packwiz" --cache "$task_root/.tools/packwiz/cache" --config "$task_root/.tools/packwiz/config.toml")
"${task_packwiz[@]}" refresh
for task_file in index.toml pack.toml; do
task_original=$(sha256sum "$task_source/$task_file")
task_refreshed=$(sha256sum "$task_file")
[[ ${task_original%% *} == "${task_refreshed%% *}" ]] || {
echo "Stale source $task_file: run packwiz refresh explicitly before building." >&2
exit 1
}
done
"${task_packwiz[@]}" modrinth export --output "$task_tmp/release/$task_name-$task_version.mrpack"
cd "$task_tmp/release"
sha256sum "$task_name-$task_version.mrpack" > SHA256SUMS
mv -- "$task_tmp/release" "$task_release"
printf 'Artifact: %s/%s-%s.mrpack\n' "$task_release" "$task_name" "$task_version"