up
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
Symbols Server CI / symbols-smoke (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
Some checks failed
Docs CI / lint-and-preview (push) Has been cancelled
AOC Guard CI / aoc-guard (push) Has been cancelled
AOC Guard CI / aoc-verify (push) Has been cancelled
Export Center CI / export-ci (push) Has been cancelled
Symbols Server CI / symbols-smoke (push) Has been cancelled
devportal-offline / build-offline (push) Has been cancelled
This commit is contained in:
16
scripts/symbols/deploy-syms.sh
Normal file
16
scripts/symbols/deploy-syms.sh
Normal file
@@ -0,0 +1,16 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
# DEVOPS-SYMS-90-005: Deploy Symbols.Server (Helm) with MinIO/Mongo dependencies.
|
||||
|
||||
SYMS_CHART=${SYMS_CHART:-"charts/symbols-server"}
|
||||
NAMESPACE=${NAMESPACE:-"symbols"}
|
||||
VALUES=${VALUES:-"ops/devops/symbols/values.yaml"}
|
||||
|
||||
echo "[symbols] creating namespace $NAMESPACE"
|
||||
kubectl create namespace "$NAMESPACE" --dry-run=client -o yaml | kubectl apply -f -
|
||||
|
||||
echo "[symbols] installing chart $SYMS_CHART"
|
||||
helm upgrade --install symbols-server "$SYMS_CHART" -n "$NAMESPACE" -f "$VALUES"
|
||||
|
||||
echo "[symbols] deployment triggered"
|
||||
61
scripts/symbols/smoke.sh
Normal file
61
scripts/symbols/smoke.sh
Normal file
@@ -0,0 +1,61 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR=$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)
|
||||
ROOT=$(cd "$SCRIPT_DIR/../.." && pwd)
|
||||
COMPOSE_FILE="$ROOT/ops/devops/symbols/docker-compose.symbols.yaml"
|
||||
PROJECT_NAME=${PROJECT_NAME:-symbolsci}
|
||||
ARTIFACT_DIR=${ARTIFACT_DIR:-"$ROOT/out/symbols-ci"}
|
||||
STAMP=$(date -u +"%Y%m%dT%H%M%SZ")
|
||||
RUN_DIR="$ARTIFACT_DIR/$STAMP"
|
||||
mkdir -p "$RUN_DIR"
|
||||
|
||||
log() { printf '[%s] %s\n' "$(date -u +%H:%M:%S)" "$*"; }
|
||||
|
||||
cleanup() {
|
||||
local code=$?
|
||||
log "Collecting compose logs"
|
||||
docker compose -f "$COMPOSE_FILE" -p "$PROJECT_NAME" logs >"$RUN_DIR/compose.log" 2>&1 || true
|
||||
log "Tearing down stack"
|
||||
docker compose -f "$COMPOSE_FILE" -p "$PROJECT_NAME" down -v >/dev/null 2>&1 || true
|
||||
log "Artifacts in $RUN_DIR"
|
||||
exit $code
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
log "Pulling images"
|
||||
docker compose -f "$COMPOSE_FILE" -p "$PROJECT_NAME" pull --ignore-pull-failures >/dev/null 2>&1 || true
|
||||
|
||||
log "Starting services"
|
||||
docker compose -f "$COMPOSE_FILE" -p "$PROJECT_NAME" up -d --remove-orphans
|
||||
|
||||
wait_http() {
|
||||
local url=$1; local name=$2; local tries=${3:-30}
|
||||
for i in $(seq 1 "$tries"); do
|
||||
if curl -fsS --max-time 5 "$url" >/dev/null 2>&1; then
|
||||
log "$name ready"
|
||||
return 0
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
log "$name not ready"
|
||||
return 1
|
||||
}
|
||||
|
||||
wait_http "http://localhost:9000/minio/health/ready" "MinIO" 25
|
||||
wait_http "http://localhost:8080/healthz" "Symbols.Server" 25
|
||||
|
||||
log "Seeding bucket"
|
||||
docker run --rm --network symbols-ci minio/mc:RELEASE.2024-08-17T00-00-00Z \
|
||||
alias set symbols http://minio:9000 minio minio123 >/dev/null
|
||||
|
||||
docker run --rm --network symbols-ci minio/mc:RELEASE.2024-08-17T00-00-00Z \
|
||||
mb -p symbols/symbols >/dev/null
|
||||
|
||||
log "Capture readiness endpoint"
|
||||
curl -fsS http://localhost:8080/healthz -o "$RUN_DIR/healthz.json"
|
||||
|
||||
log "Smoke list request"
|
||||
curl -fsS http://localhost:8080/ -o "$RUN_DIR/root.html" || true
|
||||
|
||||
echo "status=pass" > "$RUN_DIR/summary.txt"
|
||||
Reference in New Issue
Block a user