#!/usr/bin/env bash # The one check that needs a real socket: boot a dedicated server, connect two # bot clients over ENet, and assert the whole loop happened. ~35s, so it runs # on push rather than every commit. # # Skip deliberately (e.g. pushing docs-only or WIP) with: # SKIP_SMOKE_HOOK=1 git push set -uo pipefail cd "$(git rev-parse --show-toplevel)" if [[ "${SKIP_SMOKE_HOOK:-0}" == "1" ]]; then echo "pre-push: SKIP_SMOKE_HOOK=1, skipping smoke test" exit 0 fi echo "pre-push: running tools/smoke.sh..." if ! tools/smoke.sh; then echo echo "pre-push FAILED: end-to-end smoke test did not pass." echo "Push anyway with: SKIP_SMOKE_HOOK=1 git push" exit 1 fi