mirror of
https://github.com/tdurieux/anonymous_github.git
synced 2026-11-14 08:17:26 +01:00
21 lines
927 B
Bash
Executable File
21 lines
927 B
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
cd "$(dirname "$0")/.."
|
|
go_binary=${GO_BINARY:-go}
|
|
project="anonymous-go-test-$$"
|
|
artifacts=$(mktemp -d)
|
|
cleanup() {
|
|
docker compose -p "$project" -f compose.test.yml down --volumes >/dev/null 2>&1 || true
|
|
rm -rf "$artifacts"
|
|
}
|
|
trap cleanup EXIT
|
|
"$go_binary" build -o "$artifacts/server" ./cmd/server
|
|
docker compose -p "$project" -f compose.test.yml up -d
|
|
mongo_address=$(docker compose -p "$project" -f compose.test.yml port mongo 27017)
|
|
redis_address=$(docker compose -p "$project" -f compose.test.yml port redis 6379)
|
|
for attempt in {1..30}; do
|
|
if docker compose -p "$project" -f compose.test.yml exec -T mongo mongosh --quiet --eval 'db.adminCommand({ping:1}).ok' >/dev/null 2>&1; then break; fi
|
|
sleep 1
|
|
done
|
|
GO_TEST_MONGODB_URI="mongodb://$mongo_address" GO_TEST_REDIS_ADDR="$redis_address" GO_TEST_SERVER_BINARY="$artifacts/server" "$go_binary" test -race -count=1 ./... "$@"
|