mirror of
https://tangled.org/tranquil.farm/tranquil-pds
synced 2026-08-21 08:46:04 +00:00
feat: initial in-house cache distribution
This commit is contained in:
@@ -194,16 +194,6 @@ sudo -u postgres psql -c "CREATE DATABASE pds OWNER tranquil_pds;" 2>/dev/null |
|
||||
sudo -u postgres psql -c "GRANT ALL PRIVILEGES ON DATABASE pds TO tranquil_pds;"
|
||||
log_success "postgres configured"
|
||||
|
||||
log_info "Installing valkey..."
|
||||
apt install -y valkey 2>/dev/null || {
|
||||
log_warn "valkey not in repos, installing redis..."
|
||||
apt install -y redis-server
|
||||
systemctl enable redis-server
|
||||
systemctl start redis-server
|
||||
}
|
||||
systemctl enable valkey-server 2>/dev/null || true
|
||||
systemctl start valkey-server 2>/dev/null || true
|
||||
|
||||
log_info "Creating blob storage directories..."
|
||||
mkdir -p /var/lib/tranquil/blobs /var/lib/tranquil/backups
|
||||
log_success "Blob storage directories created"
|
||||
@@ -313,7 +303,6 @@ DATABASE_MAX_CONNECTIONS=100
|
||||
DATABASE_MIN_CONNECTIONS=10
|
||||
BLOB_STORAGE_PATH=/var/lib/tranquil/blobs
|
||||
BACKUP_STORAGE_PATH=/var/lib/tranquil/backups
|
||||
VALKEY_URL=redis://localhost:6379
|
||||
JWT_SECRET=${JWT_SECRET}
|
||||
DPOP_SECRET=${DPOP_SECRET}
|
||||
MASTER_KEY=${MASTER_KEY}
|
||||
|
||||
@@ -16,7 +16,14 @@ echo "Running database migrations..."
|
||||
sqlx database create 2>/dev/null || true
|
||||
sqlx migrate run --source "$PROJECT_DIR/migrations"
|
||||
echo ""
|
||||
ulimit -n 65536
|
||||
|
||||
echo "Building test binaries..."
|
||||
cargo test --no-run 2>&1 | tail -1
|
||||
|
||||
echo "Running tests..."
|
||||
echo ""
|
||||
ulimit -n 65536
|
||||
cargo nextest run "$@"
|
||||
|
||||
echo ""
|
||||
echo "All tests passed."
|
||||
|
||||
+5
-50
@@ -32,7 +32,7 @@ start_infra() {
|
||||
echo "Stale infra file found, cleaning up..."
|
||||
rm -f "$INFRA_FILE"
|
||||
fi
|
||||
$CONTAINER_CMD rm -f "${CONTAINER_PREFIX}-postgres" "${CONTAINER_PREFIX}-minio" "${CONTAINER_PREFIX}-valkey" 2>/dev/null || true
|
||||
$CONTAINER_CMD rm -f "${CONTAINER_PREFIX}-postgres" 2>/dev/null || true
|
||||
echo "Starting PostgreSQL..."
|
||||
$CONTAINER_CMD run -d \
|
||||
--name "${CONTAINER_PREFIX}-postgres" \
|
||||
@@ -43,25 +43,7 @@ start_infra() {
|
||||
--label tranquil_pds_test=true \
|
||||
postgres:18-alpine \
|
||||
-c max_connections=500 >/dev/null
|
||||
echo "Starting MinIO..."
|
||||
$CONTAINER_CMD run -d \
|
||||
--name "${CONTAINER_PREFIX}-minio" \
|
||||
-e MINIO_ROOT_USER=minioadmin \
|
||||
-e MINIO_ROOT_PASSWORD=minioadmin \
|
||||
-p 9000 \
|
||||
--label tranquil_pds_test=true \
|
||||
cgr.dev/chainguard/minio:latest server /data >/dev/null
|
||||
echo "Starting Valkey..."
|
||||
$CONTAINER_CMD run -d \
|
||||
--name "${CONTAINER_PREFIX}-valkey" \
|
||||
-P \
|
||||
--label tranquil_pds_test=true \
|
||||
valkey/valkey:9-alpine >/dev/null
|
||||
echo "Waiting for services to be ready..."
|
||||
sleep 2
|
||||
PG_PORT=$($CONTAINER_CMD port "${CONTAINER_PREFIX}-postgres" 5432 | head -1 | cut -d: -f2)
|
||||
MINIO_PORT=$($CONTAINER_CMD port "${CONTAINER_PREFIX}-minio" 9000 | head -1 | cut -d: -f2)
|
||||
VALKEY_PORT=$($CONTAINER_CMD port "${CONTAINER_PREFIX}-valkey" 6379 | head -1 | cut -d: -f2)
|
||||
for i in {1..30}; do
|
||||
if $CONTAINER_CMD exec "${CONTAINER_PREFIX}-postgres" pg_isready -U postgres >/dev/null 2>&1; then
|
||||
break
|
||||
@@ -69,37 +51,10 @@ start_infra() {
|
||||
echo "Waiting for PostgreSQL... ($i/30)"
|
||||
sleep 1
|
||||
done
|
||||
for i in {1..30}; do
|
||||
if curl -s "http://127.0.0.1:${MINIO_PORT}/minio/health/live" >/dev/null 2>&1; then
|
||||
break
|
||||
fi
|
||||
echo "Waiting for MinIO... ($i/30)"
|
||||
sleep 1
|
||||
done
|
||||
for i in {1..30}; do
|
||||
if $CONTAINER_CMD exec "${CONTAINER_PREFIX}-valkey" valkey-cli ping 2>/dev/null | grep -q PONG; then
|
||||
break
|
||||
fi
|
||||
echo "Waiting for Valkey... ($i/30)"
|
||||
sleep 1
|
||||
done
|
||||
echo "Creating MinIO buckets..."
|
||||
$CONTAINER_CMD run --rm --network host \
|
||||
-e MC_HOST_minio="http://minioadmin:minioadmin@127.0.0.1:${MINIO_PORT}" \
|
||||
cgr.dev/chainguard/minio-client:latest-dev mb minio/test-bucket --ignore-existing >/dev/null 2>&1 || true
|
||||
$CONTAINER_CMD run --rm --network host \
|
||||
-e MC_HOST_minio="http://minioadmin:minioadmin@127.0.0.1:${MINIO_PORT}" \
|
||||
cgr.dev/chainguard/minio-client:latest-dev mb minio/test-backups --ignore-existing >/dev/null 2>&1 || true
|
||||
PG_PORT=$($CONTAINER_CMD port "${CONTAINER_PREFIX}-postgres" 5432 | head -1 | cut -d: -f2)
|
||||
cat > "$INFRA_FILE" << EOF
|
||||
export DATABASE_URL="postgres://postgres:postgres@127.0.0.1:${PG_PORT}/postgres"
|
||||
export TEST_DB_PORT="${PG_PORT}"
|
||||
export S3_ENDPOINT="http://127.0.0.1:${MINIO_PORT}"
|
||||
export S3_BUCKET="test-bucket"
|
||||
export BACKUP_S3_BUCKET="test-backups"
|
||||
export AWS_ACCESS_KEY_ID="minioadmin"
|
||||
export AWS_SECRET_ACCESS_KEY="minioadmin"
|
||||
export AWS_REGION="us-east-1"
|
||||
export VALKEY_URL="redis://127.0.0.1:${VALKEY_PORT}"
|
||||
export TRANQUIL_PDS_TEST_INFRA_READY="1"
|
||||
export TRANQUIL_PDS_ALLOW_INSECURE_SECRETS="1"
|
||||
export SKIP_IMPORT_VERIFICATION="true"
|
||||
@@ -113,8 +68,9 @@ EOF
|
||||
}
|
||||
stop_infra() {
|
||||
echo "Stopping test infrastructure..."
|
||||
$CONTAINER_CMD rm -f "${CONTAINER_PREFIX}-postgres" "${CONTAINER_PREFIX}-minio" "${CONTAINER_PREFIX}-valkey" 2>/dev/null || true
|
||||
$CONTAINER_CMD rm -f "${CONTAINER_PREFIX}-postgres" 2>/dev/null || true
|
||||
rm -f "$INFRA_FILE"
|
||||
rm -rf "${TMPDIR:-/tmp}"/tranquil-pds-test-* 2>/dev/null || true
|
||||
echo "Infrastructure stopped."
|
||||
}
|
||||
status_infra() {
|
||||
@@ -124,7 +80,6 @@ status_infra() {
|
||||
echo "Config file: $INFRA_FILE"
|
||||
source "$INFRA_FILE"
|
||||
echo "Database URL: $DATABASE_URL"
|
||||
echo "S3 Endpoint: $S3_ENDPOINT"
|
||||
else
|
||||
echo "Config file: NOT FOUND"
|
||||
fi
|
||||
@@ -158,7 +113,7 @@ case "${1:-}" in
|
||||
echo "Usage: $0 {start|stop|restart|status|env}"
|
||||
echo ""
|
||||
echo "Commands:"
|
||||
echo " start - Start test infrastructure (Postgres, MinIO, Valkey)"
|
||||
echo " start - Start test infrastructure (Postgres)"
|
||||
echo " stop - Stop and remove test containers"
|
||||
echo " restart - Stop then start infrastructure"
|
||||
echo " status - Show infrastructure status"
|
||||
|
||||
Reference in New Issue
Block a user