mirror of
https://github.com/h3pdesign/Neon-Vision-Editor
synced 2026-04-21 13:27:16 +00:00
chore(release): add one-command end-to-end release script
This commit is contained in:
parent
cc4ec110bd
commit
e3613e6df7
1 changed files with 84 additions and 0 deletions
84
scripts/release_all.sh
Executable file
84
scripts/release_all.sh
Executable file
|
|
@ -0,0 +1,84 @@
|
|||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
usage() {
|
||||
cat <<EOF
|
||||
Run end-to-end release flow in one command.
|
||||
|
||||
Usage:
|
||||
scripts/release_all.sh <tag> [--date YYYY-MM-DD] [--notarized]
|
||||
|
||||
Examples:
|
||||
scripts/release_all.sh v0.4.6
|
||||
scripts/release_all.sh 0.4.6 --date 2026-02-12
|
||||
scripts/release_all.sh v0.4.6 --notarized
|
||||
|
||||
What it does:
|
||||
1) Prepare README/CHANGELOG docs
|
||||
2) Commit docs changes
|
||||
3) Create annotated tag
|
||||
4) Push main and tag to origin
|
||||
5) (optional) Trigger notarized release workflow
|
||||
EOF
|
||||
}
|
||||
|
||||
if [[ "${1:-}" == "" || "${1:-}" == "-h" || "${1:-}" == "--help" ]]; then
|
||||
usage
|
||||
exit 0
|
||||
fi
|
||||
|
||||
RAW_TAG="$1"
|
||||
shift || true
|
||||
|
||||
TAG="$RAW_TAG"
|
||||
if [[ "$TAG" != v* ]]; then
|
||||
TAG="v$TAG"
|
||||
fi
|
||||
|
||||
DATE_ARG=()
|
||||
TRIGGER_NOTARIZED=0
|
||||
|
||||
while [[ "${1:-}" != "" ]]; do
|
||||
case "$1" in
|
||||
--date)
|
||||
shift
|
||||
if [[ -z "${1:-}" ]]; then
|
||||
echo "Missing value for --date" >&2
|
||||
exit 1
|
||||
fi
|
||||
DATE_ARG=(--date "$1")
|
||||
;;
|
||||
--notarized)
|
||||
TRIGGER_NOTARIZED=1
|
||||
;;
|
||||
*)
|
||||
echo "Unknown argument: $1" >&2
|
||||
usage
|
||||
exit 1
|
||||
;;
|
||||
esac
|
||||
shift || true
|
||||
done
|
||||
|
||||
if ! command -v gh >/dev/null 2>&1; then
|
||||
echo "gh CLI is required." >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Running release prep for ${TAG}..."
|
||||
scripts/release_prep.sh "$TAG" "${DATE_ARG[@]}" --push
|
||||
|
||||
echo "Tag push completed. Unsigned release workflow should start automatically."
|
||||
|
||||
if [[ "$TRIGGER_NOTARIZED" -eq 1 ]]; then
|
||||
echo "Triggering notarized workflow for ${TAG}..."
|
||||
gh workflow run release-notarized.yml -f tag="$TAG"
|
||||
echo "Triggered: release-notarized.yml (tag=${TAG})"
|
||||
fi
|
||||
|
||||
echo
|
||||
echo "Done."
|
||||
echo "Check runs:"
|
||||
echo " gh run list --workflow release.yml --limit 5"
|
||||
echo " gh run list --workflow release-notarized.yml --limit 5"
|
||||
|
||||
Loading…
Reference in a new issue