#!/bin/sh set -eu root=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd) cd "$root" ./scripts/check-contracts.sh go mod verify go test -race ./... go vet ./... go build -trimpath -buildvcs=false -o dist/sip-go-agent ./cmd/sip-go-agent tmp=$(mktemp -d) trap 'rm -rf "$tmp"' EXIT cp deploys/config/dispatcher.json.example "$tmp/dispatcher.json" chmod 600 "$tmp/dispatcher.json" # The strict Dispatcher file requires explicitly referenced credentials even in # mock mode. These are local-test values and never reach an OSS endpoint. export GO_SIP_OSS_ACCESS_KEY_ID=local-mock-access-key export GO_SIP_OSS_ACCESS_KEY_SECRET=local-mock-access-secret ./dist/sip-go-agent agent --mode mock --spool "$tmp/spool" >/dev/null rabbit_url=${GO_SIP_LOCAL_MQ_URL:-${RABBITMQ_URL:-}} if [ -z "$rabbit_url" ]; then echo "GO_SIP_LOCAL_MQ_URL or RABBITMQ_URL is required for Dispatcher acceptance" >&2 exit 1 fi export GO_SIP_LOCAL_MQ_URL=${GO_SIP_LOCAL_MQ_URL:-$rabbit_url} export GO_SIP_LOCAL_QUERY_MQ_URL=${GO_SIP_LOCAL_QUERY_MQ_URL:-$rabbit_url} export GO_SIP_LOCAL_UPLOAD_MQ_URL=${GO_SIP_LOCAL_UPLOAD_MQ_URL:-$rabbit_url} export RABBITMQ_URL=${RABBITMQ_URL:-$rabbit_url} ./dist/sip-go-agent dispatcher --mode mock --config "$tmp/dispatcher.json" --db "$tmp/dispatcher.db" --rabbit-url "$rabbit_url" --tenant-key local-acceptance-tenant --once >/dev/null ./scripts/mq-only-acceptance-local.sh >/dev/null if env -u GO_SIP_LOCAL_MQ_URL -u GO_SIP_LOCAL_QUERY_MQ_URL -u GO_SIP_LOCAL_UPLOAD_MQ_URL -u RABBITMQ_URL ./dist/sip-go-agent dispatcher --mode real --config "$tmp/dispatcher.json" --db "$tmp/real.db" --tenant-key local-acceptance-tenant --once >/dev/null 2>&1; then echo "real mode unexpectedly started without broker credentials" >&2 exit 1 fi echo "local P1 acceptance passed for the current single-node/Cell/tenant scope; external production gates are intentionally deferred to phase two"