Files
go-sip/scripts/acceptance-local.sh
T

40 lines
1.9 KiB
Bash
Executable File

#!/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"