35 lines
1021 B
Bash
Executable File
35 lines
1021 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -Eeuo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
cd "$ROOT_DIR"
|
|
|
|
fail() {
|
|
echo "[ERROR] $*" >&2
|
|
exit 1
|
|
}
|
|
|
|
[[ -f README.md ]] || fail "README.md missing"
|
|
[[ -f CHANGELOG.md ]] || fail "CHANGELOG.md missing"
|
|
[[ -f compose.yaml ]] || fail "compose.yaml missing"
|
|
[[ -f .env.example ]] || fail ".env.example missing"
|
|
[[ -x scripts/alanctl ]] || fail "scripts/alanctl missing or not executable"
|
|
|
|
bash -n scripts/alanctl
|
|
|
|
if [[ -f scripts/new-release ]]; then
|
|
bash -n scripts/new-release
|
|
fi
|
|
|
|
grep -q '^## \[Unreleased\]' CHANGELOG.md || fail "CHANGELOG.md needs an [Unreleased] section"
|
|
grep -q 'HERMES_TAG=' .env.example || fail ".env.example should document HERMES_TAG"
|
|
grep -q 'BR0_DOCKER_NETWORK=' .env.example || fail ".env.example should document BR0_DOCKER_NETWORK"
|
|
|
|
if command -v docker >/dev/null 2>&1; then
|
|
docker compose -f compose.yaml config >/dev/null
|
|
else
|
|
echo "[WARN] docker not found; skipped compose validation"
|
|
fi
|
|
|
|
echo "[OK] release-check passed"
|