Files
headscale/tools/release-check.sh
T
Kristoffer Dalby 93340a6b1b release: reject dirty sources and build artifacts
Fixes #3583

(cherry picked from commit beb1214926, adapted: drops the release branch's tidy -compat=1.27 hook)
2026-10-30 10:33:17 +01:00

22 lines
651 B
Bash

#!/usr/bin/env bash
set -euo pipefail
status=$(git status --porcelain --untracked-files=all)
if [[ -n "$status" ]]; then
printf 'release: working tree is dirty\n%s\n' "$status" >&2
exit 1
fi
for binary in "$@"; do
info=$(go version -m "$binary")
if ! grep -Eq '[[:space:]]vcs.modified=false$' <<< "$info"; then
printf 'release: %s lacks clean VCS metadata\n%s\n' "$binary" "$info" >&2
exit 1
fi
revision=$(git rev-parse HEAD)
if ! grep -Eq "[[:space:]]vcs.revision=${revision}$" <<< "$info"; then
printf 'release: %s was not built from HEAD\n%s\n' "$binary" "$info" >&2
exit 1
fi
done