#!/usr/bin/env bash set -euo pipefail deploy_branch="${1:-deploy}" current_branch="$(git rev-parse --abbrev-ref HEAD)" if ! git diff --quiet || ! git diff --cached --quiet; then echo "Working tree is not clean. Commit or stash changes before deploy." exit 1 fi if git ls-files --others --exclude-standard | grep -q .; then echo "Untracked files present. Commit or remove them before deploy." exit 1 fi cleanup() { git checkout "${current_branch}" >/dev/null 2>&1 || true } trap cleanup EXIT git checkout "${deploy_branch}" git merge --no-edit "${current_branch}" git push explorer.specnext.dev "${deploy_branch}"