mirror of
https://github.com/hpd840321/starRiverProperty.git
synced 2026-06-09 08:20:31 +08:00
feat: add test env infra compose, config templates, build/prepare scripts
Former-commit-id: 70b7cd14e81c8f43300638dcd5f9859115e1959a
This commit is contained in:
Executable
+33
@@ -0,0 +1,33 @@
|
||||
#!/bin/bash
|
||||
# build-elevator-v2.sh — 编译 cw-elevator-application V2
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/config/env.sh"
|
||||
|
||||
log_info "Building V2 elevator application..."
|
||||
|
||||
cd "$REPO_ROOT/maven-cw-elevator-application"
|
||||
|
||||
export JAVA_HOME
|
||||
export PATH="$JAVA_HOME/bin:$PATH"
|
||||
|
||||
log_info "JDK: $($JAVA -version 2>&1 | head -1)"
|
||||
|
||||
# Build (skip tests)
|
||||
$MVN clean install $MVN_OPTS 2>&1 | tail -5
|
||||
|
||||
if [[ ${PIPESTATUS[0]} -eq 0 ]]; then
|
||||
log_ok "V2 elevator build SUCCESS"
|
||||
else
|
||||
log_error "V2 elevator build FAILED — check logs"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# Sync JAR to deploy/
|
||||
if [[ -f "cw-elevator-application-starter/target/cw-elevator-application-2.0.7.jar" ]]; then
|
||||
cp cw-elevator-application-starter/target/cw-elevator-application-2.0.7.jar \
|
||||
deploy/v2-maven/cw-elevator-application-2.0.7.jar
|
||||
log_ok "JAR synced to deploy/v2-maven/"
|
||||
else
|
||||
# Fallback: use sync-jars.sh
|
||||
cd deploy && bash sync-jars.sh
|
||||
log_ok "JAR synced via sync-jars.sh"
|
||||
fi
|
||||
@@ -0,0 +1,41 @@
|
||||
# Alarm app test config
|
||||
spring.application.name=ninca-qk-alarm-app
|
||||
server.port=__ALARM_PORT__
|
||||
spring.main.allow-bean-definition-overriding=true
|
||||
|
||||
# Consul
|
||||
spring.cloud.consul.host=__CONSUL_HOST__
|
||||
spring.cloud.consul.port=__CONSUL_PORT__
|
||||
spring.cloud.consul.discovery.register=true
|
||||
spring.cloud.consul.discovery.ip-address=127.0.0.1
|
||||
|
||||
# MySQL
|
||||
spring.datasource.url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/alarm_deploy?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=123456
|
||||
|
||||
# Redis
|
||||
spring.redis.host=__REDIS_HOST__
|
||||
spring.redis.port=6379
|
||||
spring.redis.password=__REDIS_PASS__
|
||||
spring.redis.database=7
|
||||
|
||||
# Kafka
|
||||
kafka.producer.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
kafka.consumer.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
spring.kafka.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
spring.kafka.consumer.group-id=alarm_test
|
||||
|
||||
# Feign names
|
||||
cloudwalk.alarm-app.feign.name.cwos-portal=cwos-portal
|
||||
cloudwalk.alarm-app.feign.name.component-organization=ninca-common-component-organization
|
||||
cloudwalk.alarm-app.feign.name.ninca-common=ninca-common
|
||||
|
||||
# Management
|
||||
management.port=__ALARM_MGMT_PORT__
|
||||
management.context-path=/actuator
|
||||
management.security.enabled=false
|
||||
|
||||
# Disable non-essential features for test
|
||||
swagger.enable=false
|
||||
sendRecord.boolean=false
|
||||
@@ -0,0 +1,11 @@
|
||||
server.port=__COMPONENT_ORG_PORT__
|
||||
spring.application.name=ninca-common-component-organization
|
||||
spring.datasource.url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/component-organization?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=123456
|
||||
spring.cloud.consul.host=__CONSUL_HOST__
|
||||
spring.cloud.consul.port=__CONSUL_PORT__
|
||||
spring.cloud.consul.discovery.register=true
|
||||
spring.redis.host=__REDIS_HOST__
|
||||
spring.redis.port=6379
|
||||
spring.redis.password=__REDIS_PASS__
|
||||
@@ -0,0 +1,54 @@
|
||||
# CRK-std test config
|
||||
spring.application.name=ninca-crk-std
|
||||
server.port=__CRK_PORT__
|
||||
spring.profiles.active=smart-attendance,visitor-management,access-control,conference-attendance
|
||||
|
||||
# Consul
|
||||
spring.cloud.consul.host=__CONSUL_HOST__
|
||||
spring.cloud.consul.port=__CONSUL_PORT__
|
||||
spring.cloud.consul.discovery.register=true
|
||||
spring.cloud.consul.discovery.ip-address=127.0.0.1
|
||||
|
||||
# MySQL
|
||||
spring.shardingsphere.datasource.ds0.jdbc-url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/ninca_crk_std?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
|
||||
spring.shardingsphere.datasource.ds0.username=root
|
||||
spring.shardingsphere.datasource.ds0.password=123456
|
||||
|
||||
# Redis
|
||||
spring.redis.host=__REDIS_HOST__
|
||||
spring.redis.port=6379
|
||||
spring.redis.password=__REDIS_PASS__
|
||||
spring.redis.database=5
|
||||
|
||||
# Kafka
|
||||
kafka.producer.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
kafka.consumer.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
spring.kafka.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
spring.kafka.consumer.group-id=crk_std_test
|
||||
cloudwalk.event.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
cloudwalk.event.group-id=crk_std
|
||||
|
||||
# Feign service names
|
||||
feign.device.name=cwos-portal
|
||||
feign.resource.name=cwos-portal
|
||||
feign.cwos-portal.name=cwos-portal
|
||||
feign.portal.name=cwos-portal
|
||||
feign.component-organization.name=ninca-common-component-organization
|
||||
feign.davinci-portal.name=cwos-portal
|
||||
feign.ninca-common.name=ninca-common
|
||||
feign.elevator.name=elevator-app
|
||||
|
||||
# Quartz
|
||||
quartz.driver=com.mysql.jdbc.Driver
|
||||
quartz.url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/ninca_crk_std?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
|
||||
quartz.user=root
|
||||
quartz.password=123456
|
||||
|
||||
# Management
|
||||
management.port=__CRK_MGMT_PORT__
|
||||
management.context-path=/actuator
|
||||
management.security.enabled=false
|
||||
|
||||
xinhewan.businessid=2524639890ba4f2cba9ba1a4eeaa4015
|
||||
push.method=1
|
||||
sendRecord.boolean=false
|
||||
@@ -0,0 +1,48 @@
|
||||
# V2 elevator test config — auto-generated from template
|
||||
# Variables: __MYSQL_HOST__ __MYSQL_PORT__ __REDIS_HOST__ __REDIS_PASS__
|
||||
# __CONSUL_HOST__ __CONSUL_PORT__ __KAFKA_HOST__ __KAFKA_PORT__
|
||||
# __CRK_HOST__ __CRK_PORT__
|
||||
server.port=18081
|
||||
spring.application.name=elevator-app
|
||||
spring.profiles.active=access-control
|
||||
|
||||
# Consul
|
||||
spring.cloud.consul.host=__CONSUL_HOST__
|
||||
spring.cloud.consul.port=__CONSUL_PORT__
|
||||
spring.cloud.consul.enabled=true
|
||||
spring.cloud.consul.discovery.register=true
|
||||
spring.cloud.consul.discovery.enabled=false
|
||||
|
||||
# MySQL (ShardingSphere)
|
||||
spring.shardingsphere.datasource.ds0.jdbc-url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/cw-elevator-application?zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8&useSSL=false&allowMultiQueries=true
|
||||
spring.shardingsphere.datasource.ds0.username=root
|
||||
spring.shardingsphere.datasource.ds0.password=123456
|
||||
|
||||
# Redis
|
||||
spring.redis.host=__REDIS_HOST__
|
||||
spring.redis.port=6379
|
||||
spring.redis.password=__REDIS_PASS__
|
||||
spring.redis.database=5
|
||||
|
||||
# Kafka
|
||||
cloudwalk.event.bootstrap-servers=__KAFKA_HOST__:__KAFKA_PORT__
|
||||
cloudwalk.event.group-id=cw-elevator-application-test
|
||||
|
||||
# Feign targets
|
||||
feign.device.name=cwos-portal
|
||||
feign.cwos-portal.name=cwos-portal
|
||||
feign.ninca-crk-std.name=ninca-crk-std
|
||||
ninca-crk-std.ribbon.NIWSServerListClassName=com.netflix.loadbalancer.ConfigurationBasedServerList
|
||||
ninca-crk-std.ribbon.listOfServers=__CRK_HOST__:__CRK_PORT__
|
||||
ninca-crk-std.ip=__CRK_HOST__:__CRK_PORT__
|
||||
|
||||
# Other
|
||||
feign.hystrix.enable=true
|
||||
feign.okhttp.enable=true
|
||||
ribbon.ReadTimeout=10000
|
||||
ribbon.ConnectTimeout=10000
|
||||
elevator.application.key=xinghewan
|
||||
elevator.application.time=600
|
||||
elevator.application.keyA=5B7DEF88FF04
|
||||
floor.building.id=605560539791228928
|
||||
sendRecord.boolean=false
|
||||
@@ -0,0 +1,11 @@
|
||||
server.port=__NINCA_COMMON_PORT__
|
||||
spring.application.name=ninca-common
|
||||
spring.datasource.url=jdbc:mysql://__MYSQL_HOST__:__MYSQL_PORT__/ninca_common?useSSL=false&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
|
||||
spring.datasource.username=root
|
||||
spring.datasource.password=123456
|
||||
spring.cloud.consul.host=__CONSUL_HOST__
|
||||
spring.cloud.consul.port=__CONSUL_PORT__
|
||||
spring.cloud.consul.discovery.register=true
|
||||
spring.redis.host=__REDIS_HOST__
|
||||
spring.redis.port=6379
|
||||
spring.redis.password=__REDIS_PASS__
|
||||
@@ -0,0 +1,65 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
consul:
|
||||
image: hashicorp/consul:1.22
|
||||
container_name: v2test-consul
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8500:8500"
|
||||
command: >
|
||||
agent -server -bootstrap-expect=1 -ui
|
||||
-client=0.0.0.0 -bind=0.0.0.0
|
||||
-data-dir=/consul/data
|
||||
volumes:
|
||||
- consul-data:/consul/data
|
||||
|
||||
redis:
|
||||
image: redis:7-alpine
|
||||
container_name: v2test-redis
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "6379:6379"
|
||||
command: redis-server --requirepass "1qaz!QAZ"
|
||||
|
||||
zookeeper:
|
||||
image: bitnami/zookeeper:3.9
|
||||
container_name: v2test-zookeeper
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "2181:2181"
|
||||
environment:
|
||||
ALLOW_ANONYMOUS_LOGIN: "yes"
|
||||
|
||||
kafka:
|
||||
image: bitnami/kafka:3.6
|
||||
container_name: v2test-kafka
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "9092:9092"
|
||||
environment:
|
||||
KAFKA_CFG_NODE_ID: 1
|
||||
KAFKA_CFG_PROCESS_ROLES: "broker,controller"
|
||||
KAFKA_CFG_CONTROLLER_QUORUM_VOTERS: "1@localhost:9093"
|
||||
KAFKA_CFG_LISTENERS: "PLAINTEXT://:9092,CONTROLLER://:9093"
|
||||
KAFKA_CFG_ADVERTISED_LISTENERS: "PLAINTEXT://localhost:9092"
|
||||
KAFKA_CFG_CONTROLLER_LISTENER_NAMES: "CONTROLLER"
|
||||
KAFKA_CFG_LISTENER_SECURITY_PROTOCOL_MAP: "PLAINTEXT:PLAINTEXT,CONTROLLER:PLAINTEXT"
|
||||
KAFKA_CFG_AUTO_CREATE_TOPICS_ENABLE: "true"
|
||||
depends_on:
|
||||
- zookeeper
|
||||
|
||||
nginx:
|
||||
image: nginx:alpine
|
||||
container_name: v2test-nginx
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "8090:80"
|
||||
extra_hosts:
|
||||
- "host.docker.internal:host-gateway"
|
||||
volumes:
|
||||
- ../../frontend:/data/cwos/frontend:ro
|
||||
- ../../nginx.frontend-local.conf:/etc/nginx/conf.d/default.conf:ro
|
||||
|
||||
volumes:
|
||||
consul-data:
|
||||
Executable
+82
@@ -0,0 +1,82 @@
|
||||
#!/bin/bash
|
||||
# prepare-services.sh — 解压 tar.gz + 从模板生成配置
|
||||
source "$(dirname "${BASH_SOURCE[0]}")/config/env.sh"
|
||||
|
||||
log_info "Phase 4: Service preparation"
|
||||
mkdir -p "$SERVICE_DIR" "$LOG_DIR"
|
||||
|
||||
# Tarballs to extract
|
||||
TARBALLS=(
|
||||
"$STAR_CENTER/ninca_common_01-ninca_common_backend.tar.gz:ninca-common"
|
||||
"$STAR_CENTER/ninca_common_component_organization_01-ninca_common_component_organization.tar.gz:component-org"
|
||||
"$STAR_CENTER/ninca_common_snap_app_01-ninca_common_snap_app.tar.gz:snap-app"
|
||||
"$STAR_CENTER/ninca_common_vehicle_app_01-ninca_common_vehicle_app.tar.gz:vehicle-app"
|
||||
"$STAR_CENTER/ninca_common_monitor_app_01-ninca_common_monitor_app.tar.gz:monitor-app"
|
||||
"$STAR_CENTER/ninca-person-file-app-V2.9.2_20210216.tar.gz:person-file"
|
||||
)
|
||||
|
||||
for item in "${TARBALLS[@]}"; do
|
||||
tarball="${item%%:*}"
|
||||
svc_name="${item##*:}"
|
||||
svc_dir="$SERVICE_DIR/$svc_name"
|
||||
|
||||
if [[ -d "$svc_dir" ]]; then
|
||||
log_info "Already extracted: $svc_name — skipping"
|
||||
continue
|
||||
fi
|
||||
|
||||
log_info "Extracting $tarball → $svc_dir ..."
|
||||
mkdir -p "$svc_dir"
|
||||
tar -xzf "$tarball" -C "$svc_dir" --strip-components=1
|
||||
log_ok " $svc_name extracted"
|
||||
done
|
||||
|
||||
render_template() {
|
||||
local template="$1"
|
||||
local output="$2"
|
||||
sed \
|
||||
-e "s|__MYSQL_HOST__|$MYSQL_HOST|g" \
|
||||
-e "s|__MYSQL_PORT__|$MYSQL_PORT|g" \
|
||||
-e "s|__REDIS_HOST__|$REDIS_HOST|g" \
|
||||
-e "s|__REDIS_PASS__|$REDIS_PASS|g" \
|
||||
-e "s|__CONSUL_HOST__|$CONSUL_HOST|g" \
|
||||
-e "s|__CONSUL_PORT__|$CONSUL_PORT|g" \
|
||||
-e "s|__KAFKA_HOST__|$KAFKA_HOST|g" \
|
||||
-e "s|__KAFKA_PORT__|$KAFKA_PORT|g" \
|
||||
-e "s|__CRK_HOST__|127.0.0.1|g" \
|
||||
-e "s|__CRK_PORT__|$PORT_CRK_STD|g" \
|
||||
-e "s|__CRK_MGMT_PORT__|$PORT_CRK_MGMT|g" \
|
||||
-e "s|__ALARM_PORT__|$PORT_ALARM|g" \
|
||||
-e "s|__ALARM_MGMT_PORT__|$PORT_ALARM_MGMT|g" \
|
||||
-e "s|__NINCA_COMMON_PORT__|$PORT_NINCA_COMMON|g" \
|
||||
-e "s|__COMPONENT_ORG_PORT__|$PORT_COMPONENT_ORG|g" \
|
||||
"$template" > "$output"
|
||||
}
|
||||
|
||||
# Generate configs for each service
|
||||
render_template "$TEST_ENV_DIR/config/service-templates/elevator-v2.properties" \
|
||||
"$REPO_ROOT/maven-cw-elevator-application/deploy/v2-maven/application-test.properties"
|
||||
log_ok " elevator-v2 config generated"
|
||||
|
||||
render_template "$TEST_ENV_DIR/config/service-templates/crk-std.properties" \
|
||||
"$STAR_CENTER/ninca_crk_std_01-ninca_crk_std_backend/application-test.properties"
|
||||
log_ok " crk-std config generated"
|
||||
|
||||
render_template "$TEST_ENV_DIR/config/service-templates/alarm.properties" \
|
||||
"$STAR_CENTER/ninca_qk_alarm_app_01-ninca_qk_alarm_app/application-test.properties"
|
||||
log_ok " alarm config generated"
|
||||
|
||||
# Generate configs for extracted tarball services
|
||||
if [[ -d "$SERVICE_DIR/ninca-common" ]]; then
|
||||
render_template "$TEST_ENV_DIR/config/service-templates/ninca-common.properties" \
|
||||
"$SERVICE_DIR/ninca-common/application-test.properties"
|
||||
log_ok " ninca-common config generated"
|
||||
fi
|
||||
|
||||
if [[ -d "$SERVICE_DIR/component-org" ]]; then
|
||||
render_template "$TEST_ENV_DIR/config/service-templates/component-org.properties" \
|
||||
"$SERVICE_DIR/component-org/application-test.properties"
|
||||
log_ok " component-org config generated"
|
||||
fi
|
||||
|
||||
log_info "Service preparation complete"
|
||||
Reference in New Issue
Block a user