40 lines
1.9 KiB
Bash
Executable File
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"
|