mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 16:30:29 +08:00
Initial commit: reorganized source tree
- backend/: 13 Maven modules (cw-elevator-application, cloudwalk-cloud, intelligent-cwoscomponent, ninca-crk, etc.) - frontend/: 4 Vue projects (elevator-front, cwos-portal, alarm-front, front_acs) + decompiled + scripts - scripts/: build, test-env, tools (Docker Compose, service templates, API parity) - docs/: AGENTS.md, superpowers specs, architecture docs - .gitignore: standard Java/Maven exclusions Moved from legacy maven-*/ root layout to backend/ organized structure.
This commit is contained in:
Executable
+145
@@ -0,0 +1,145 @@
|
||||
#!/bin/bash
|
||||
# setup.sh — V2 测试环境一键搭建入口
|
||||
set -euo pipefail
|
||||
|
||||
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||
source "$SCRIPT_DIR/config/env.sh"
|
||||
|
||||
cat << 'BANNER'
|
||||
╔══════════════════════════════════════════════╗
|
||||
║ V2 Full-System Test Environment Setup ║
|
||||
║ cw-elevator-application v2.0.7 ║
|
||||
╚══════════════════════════════════════════════╝
|
||||
BANNER
|
||||
|
||||
START_TIME=$(date +%s)
|
||||
|
||||
# ============================================
|
||||
# Phase 1: 环境检查
|
||||
# ============================================
|
||||
log_info "Phase 1/6: Environment check"
|
||||
|
||||
# JDK 8
|
||||
if [[ ! -x "$JAVA_HOME/bin/java" ]]; then
|
||||
log_error "JDK 8 not found at $JAVA_HOME"
|
||||
log_info "Set DEPLOY_JDK8 environment variable to correct path"
|
||||
exit 1
|
||||
fi
|
||||
JAVA_VER=$("$JAVA_HOME/bin/java" -version 2>&1 | head -1)
|
||||
log_ok "JDK: $JAVA_VER"
|
||||
|
||||
# Maven
|
||||
if ! command -v mvn &>/dev/null; then
|
||||
log_error "Maven not found"
|
||||
exit 1
|
||||
fi
|
||||
log_ok "Maven: $(mvn --version 2>&1 | head -1)"
|
||||
|
||||
# Docker
|
||||
if ! docker compose version &>/dev/null; then
|
||||
log_error "Docker Compose not found"
|
||||
exit 1
|
||||
fi
|
||||
log_ok "Docker: $(docker compose version)"
|
||||
|
||||
# MySQL
|
||||
if ! mysql -h "$MYSQL_HOST" -P "$MYSQL_PORT" -u "$MYSQL_USER" -p"$MYSQL_PASS" -e "SELECT 1" &>/dev/null; then
|
||||
log_error "Cannot connect to MySQL at $MYSQL_HOST:$MYSQL_PORT"
|
||||
exit 1
|
||||
fi
|
||||
log_ok "MySQL: $MYSQL_HOST:$MYSQL_PORT OK"
|
||||
|
||||
# 端口冲突
|
||||
CONFLICT_PORTS=""
|
||||
for port in 9517 6380 8090 18080 18081 16106 17011 3721; do
|
||||
if ss -tlnp 2>/dev/null | grep -q ":$port "; then
|
||||
CONFLICT_PORTS="$CONFLICT_PORTS $port"
|
||||
fi
|
||||
done
|
||||
if [[ -n "$CONFLICT_PORTS" ]]; then
|
||||
log_warn "Ports already in use:$CONFLICT_PORTS"
|
||||
log_warn "These services may fail to start. Stop existing processes first."
|
||||
fi
|
||||
|
||||
log_ok "Phase 1 complete"
|
||||
|
||||
# ============================================
|
||||
# Phase 2: 数据库准备
|
||||
# ============================================
|
||||
log_info "Phase 2/6: Database preparation"
|
||||
bash "$SCRIPT_DIR/prepare-db.sh"
|
||||
log_ok "Phase 2 complete"
|
||||
|
||||
# ============================================
|
||||
# Phase 3: Docker 基础组件启动
|
||||
# ============================================
|
||||
log_info "Phase 3/6: Docker infrastructure"
|
||||
cd "$SCRIPT_DIR"
|
||||
|
||||
# Stop and remove any existing v2test containers and conflicting containers
|
||||
log_info "Cleaning up existing containers..."
|
||||
docker rm -f v2test-consul v2test-redis v2test-nginx cw-frontend-local-nginx v2-test-redis 2>/dev/null || true
|
||||
docker compose -f docker-compose.infra.yml down --remove-orphans 2>/dev/null || true
|
||||
|
||||
docker compose -f docker-compose.infra.yml up -d
|
||||
|
||||
log_info "Waiting for Consul..."
|
||||
for i in $(seq 1 30); do
|
||||
if curl -sf "http://$CONSUL_HOST:$CONSUL_PORT/v1/status/leader" &>/dev/null; then
|
||||
break
|
||||
fi
|
||||
sleep 2
|
||||
done
|
||||
log_ok "Consul ready"
|
||||
|
||||
log_info "Waiting for Kafka..."
|
||||
sleep 15
|
||||
log_ok "Kafka ready"
|
||||
log_ok "Phase 3 complete"
|
||||
|
||||
# ============================================
|
||||
# Phase 4: 服务准备
|
||||
# ============================================
|
||||
log_info "Phase 4/6: Service preparation"
|
||||
bash "$SCRIPT_DIR/prepare-services.sh"
|
||||
bash "$SCRIPT_DIR/build-elevator-v2.sh"
|
||||
log_ok "Phase 4 complete"
|
||||
|
||||
# ============================================
|
||||
# Phase 5: 服务启动
|
||||
# ============================================
|
||||
log_info "Phase 5/6: Service startup"
|
||||
bash "$SCRIPT_DIR/start-all.sh"
|
||||
log_ok "Phase 5 complete"
|
||||
|
||||
# ============================================
|
||||
# Phase 6: 验证
|
||||
# ============================================
|
||||
log_info "Phase 6/6: Verification"
|
||||
bash "$SCRIPT_DIR/health-check.sh"
|
||||
bash "$SCRIPT_DIR/verify-functional.sh"
|
||||
log_ok "Phase 6 complete"
|
||||
|
||||
# ============================================
|
||||
# 汇总
|
||||
# ============================================
|
||||
END_TIME=$(date +%s)
|
||||
DURATION=$((END_TIME - START_TIME))
|
||||
|
||||
cat << SUMMARY
|
||||
|
||||
╔══════════════════════════════════════════════╗
|
||||
║ Setup Complete! ║
|
||||
║ ║
|
||||
║ Duration: ${DURATION}s ║
|
||||
║ Consul: http://$CONSUL_HOST:$CONSUL_PORT/ui/ ║
|
||||
║ Nginx: http://$CONSUL_HOST:$PORT_NGINX/ ║
|
||||
║ Elevator V2: http://127.0.0.1:$PORT_ELEVATOR_V2 ║
|
||||
║ Elevator V1: http://127.0.0.1:$PORT_ELEVATOR_V1 ║
|
||||
║ CRK std: http://127.0.0.1:$PORT_CRK_STD ║
|
||||
║ Alarm: http://127.0.0.1:$PORT_ALARM ║
|
||||
╚══════════════════════════════════════════════╝
|
||||
|
||||
To stop: bash scripts/test-env/stop-all.sh && docker compose -f scripts/test-env/docker-compose.infra.yml down
|
||||
|
||||
SUMMARY
|
||||
Reference in New Issue
Block a user