first cycle lab release
This commit is contained in:
Executable
+34
@@ -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"
|
||||
Reference in New Issue
Block a user