NowAI-Bench / Makefile
bradnow's picture
Add production push utilities and inline help comments to Makefile
e82a5f2
Raw
History Blame Contribute Delete
1.75 kB
SYNC := .claude/skills/sync-nowai-leaderboard/sync.mjs
LOG := $(HOME)/Library/Logs/nowai-sync.log
.PHONY: sync check logs push-to-prod force-push-to-prod
sync: ## Run full sync (commit + push to staging)
node $(SYNC) --push
check: ## Dry-run: print diff, no writes
node $(SYNC) --check
logs: ## Show last 50 lines of the sync log
tail -50 $(LOG)
push-to-prod: ## Push current main to production after staging review
@set -eu; \
if [ -n "$$(git status --short)" ]; then \
echo "Refusing to push to prod: working tree is not clean."; \
exit 1; \
fi; \
if [ "$$(git branch --show-current)" != "main" ]; then \
echo "Refusing to push to prod: current branch must be main."; \
exit 1; \
fi; \
if [ "$$(git rev-parse HEAD)" != "$$(git rev-parse origin/main)" ]; then \
echo "Refusing to push to prod: local HEAD must match origin/main."; \
exit 1; \
fi; \
echo "WARNING: this will push main to the production remote (prod)."; \
printf "Hit Enter or type Yes to continue: "; \
read answer; \
if [ -n "$$answer" ] && [ "$$answer" != "Yes" ]; then \
echo "Aborted."; \
exit 1; \
fi; \
git push prod main:main
force-push-to-prod: ## Force-push current main to production after explicit confirmation
@set -eu; \
echo "WARNING: this will force-push main to the production remote (prod)."; \
echo "Use this only when you intentionally need to override production history."; \
printf "Type Yes to continue: "; \
read answer; \
if [ "$$answer" != "Yes" ]; then \
echo "Aborted."; \
exit 1; \
fi; \
git push --force-with-lease prod main:main
help: ## Display this help
@grep -E '^[a-zA-Z0-9_-]+:.*?## .*$$' $(MAKEFILE_LIST) | sort | awk 'BEGIN {FS = ":.*?## "}; {printf "\033[36m%-30s\033[0m %s\n", $$1, $$2}'