blumeops/mise-tasks/provision-ringtail
Erich Blume 1f2134bf0a Fix provision-ringtail ls-remote matching with mirror refs
git ls-remote returns multiple lines when a mirror ref exists
(e.g. refs/remotes/remote_mirror_*/main). Take only the first
line to avoid a false mismatch.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-18 21:22:46 -08:00

31 lines
959 B
Bash
Executable file

#!/usr/bin/env bash
#MISE description="Run ansible playbook to provision ringtail (NixOS)"
set -euo pipefail
export MISE_TASK_OUTPUT=interleave
# Update flake.lock via Dagger before deploying
echo "Updating nixos/ringtail/flake.lock..."
dagger call flake-lock --src=. --flake-path=nixos/ringtail \
export --path=nixos/ringtail/flake.lock
if ! git diff --quiet nixos/ringtail/flake.lock; then
git add nixos/ringtail/flake.lock
echo "flake.lock changed and staged. Commit, push, and re-run."
exit 1
fi
COMMIT=$(git rev-parse HEAD)
REMOTE_REF=$(git ls-remote origin "$(git rev-parse --abbrev-ref HEAD)" 2>/dev/null | awk 'NR==1{print $1}')
if [[ "$REMOTE_REF" != "$COMMIT" ]]; then
echo "ERROR: Current commit $COMMIT is not pushed to forge."
echo "Push your changes first: git push"
exit 1
fi
echo "Deploying commit $COMMIT to ringtail..."
cd ansible
ansible-playbook playbooks/ringtail.yml -e "ringtail_commit=$COMMIT" "$@"