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>
31 lines
959 B
Bash
Executable file
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" "$@"
|