mirror of
https://github.com/iflytek/skillhub.git
synced 2026-08-28 11:25:00 +00:00
46 lines
1 KiB
Bash
Executable file
46 lines
1 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -euo pipefail
|
|
|
|
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
|
|
SERVER_DIR="$ROOT_DIR/server"
|
|
WEB_DIR="$ROOT_DIR/web"
|
|
API_LOG="${TMPDIR:-/tmp}/skillhub-openapi-check.log"
|
|
SERVER_PID=""
|
|
|
|
cleanup() {
|
|
if [[ -n "$SERVER_PID" ]] && kill -0 "$SERVER_PID" 2>/dev/null; then
|
|
kill "$SERVER_PID" >/dev/null 2>&1 || true
|
|
wait "$SERVER_PID" >/dev/null 2>&1 || true
|
|
fi
|
|
(cd "$ROOT_DIR" && docker compose down >/dev/null 2>&1) || true
|
|
}
|
|
|
|
trap cleanup EXIT
|
|
|
|
cd "$ROOT_DIR"
|
|
docker compose up -d --wait postgres redis
|
|
|
|
(
|
|
cd "$SERVER_DIR"
|
|
SPRING_PROFILES_ACTIVE=local ./mvnw -pl skillhub-app spring-boot:run
|
|
) >"$API_LOG" 2>&1 &
|
|
SERVER_PID=$!
|
|
|
|
for _ in $(seq 1 90); do
|
|
if curl -fsS "http://127.0.0.1:8080/v3/api-docs" >/dev/null 2>&1; then
|
|
break
|
|
fi
|
|
sleep 2
|
|
done
|
|
|
|
if ! curl -fsS "http://127.0.0.1:8080/v3/api-docs" >/dev/null 2>&1; then
|
|
echo "Backend did not expose /v3/api-docs. See $API_LOG" >&2
|
|
exit 1
|
|
fi
|
|
|
|
cd "$WEB_DIR"
|
|
pnpm run generate-api
|
|
|
|
cd "$ROOT_DIR"
|
|
git diff --exit-code -- web/src/api/generated/schema.d.ts
|