[#13] 增加debug模式系统集成测试,使用external network和指定private路径

This commit is contained in:
2025-10-13 15:18:41 +08:00
parent 0e96c5bcb0
commit 3d9b229ac0
17 changed files with 1254 additions and 0 deletions

96
src/sys/debug/scripts/common.sh Executable file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
DEBUG_ROOT="$(cd "$SCRIPT_DIR/.." && pwd)"
REPO_ROOT="$(cd "$DEBUG_ROOT/../../.." && pwd)"
ENV_FILE="$DEBUG_ROOT/.env"
source "$REPO_ROOT/scripts/common/build_user.sh"
load_build_user
if [[ -f "$ENV_FILE" ]]; then
set -a
# shellcheck disable=SC1090
source "$ENV_FILE"
set +a
fi
SYS_DEBUG_NETWORK_NAME=${SYS_DEBUG_NETWORK_NAME:-argus-debug-net}
SYS_DEBUG_NETWORK_SUBNET=${SYS_DEBUG_NETWORK_SUBNET:-172.30.0.0/16}
SYS_DEBUG_NETWORK_GATEWAY=${SYS_DEBUG_NETWORK_GATEWAY:-172.30.0.1}
SYS_DEBUG_PROJECT_NAME=${SYS_DEBUG_PROJECT_NAME:-argus-debug}
SYS_DEBUG_CONTAINER_PREFIX=${SYS_DEBUG_CONTAINER_PREFIX:-argus-debug}
SYS_DEBUG_PRIVATE_CORE=${SYS_DEBUG_PRIVATE_CORE:-$DEBUG_ROOT/private}
SYS_DEBUG_PRIVATE_NODEA=${SYS_DEBUG_PRIVATE_NODEA:-$DEBUG_ROOT/private-nodea}
SYS_DEBUG_PRIVATE_NODEB=${SYS_DEBUG_PRIVATE_NODEB:-$DEBUG_ROOT/private-nodeb}
SYS_DEBUG_TMP_DIR=${SYS_DEBUG_TMP_DIR:-$DEBUG_ROOT/tmp}
ARGUS_BUILD_UID=${ARGUS_BUILD_UID:-2133}
ARGUS_BUILD_GID=${ARGUS_BUILD_GID:-2015}
SYS_DEBUG_NODEA_HOST=${SYS_DEBUG_NODEA_HOST:-dev-yyrshare-nbnyx10-cp2f-pod-0}
SYS_DEBUG_NODEB_HOST=${SYS_DEBUG_NODEB_HOST:-dev-yyrshare-uuuu10-ep2f-pod-0}
HOST_A="$SYS_DEBUG_NODEA_HOST"
HOST_B="$SYS_DEBUG_NODEB_HOST"
COMPOSE_FILE="$DEBUG_ROOT/docker-compose.yml"
abs_path() {
python3 - "$1" <<'PY'
import os, sys
path = sys.argv[1]
print(os.path.abspath(path))
PY
}
ensure_command() {
local cmd="$1"
if ! command -v "$cmd" >/dev/null 2>&1; then
echo "[ERR] Required command '$cmd' not found" >&2
exit 1
fi
}
require_docker() {
ensure_command docker
}
compose() {
require_docker
local bin
if docker compose version >/dev/null 2>&1; then
bin=(docker compose)
else
bin=(docker-compose)
fi
"${bin[@]}" -p "$SYS_DEBUG_PROJECT_NAME" -f "$COMPOSE_FILE" "$@"
}
ensure_paths_defined() {
local missing=()
for name in SYS_DEBUG_PRIVATE_CORE SYS_DEBUG_PRIVATE_NODEA SYS_DEBUG_PRIVATE_NODEB SYS_DEBUG_TMP_DIR; do
if [[ -z "${!name:-}" ]]; then
missing+=("$name")
fi
done
if (( ${#missing[@]} > 0 )); then
echo "[ERR] Missing required environment variables: ${missing[*]}" >&2
echo " Run 01_bootstrap.sh first." >&2
exit 1
fi
}
ensure_env_file() {
if [[ ! -f "$ENV_FILE" ]]; then
echo "[ERR] Missing .env at $ENV_FILE. Run 01_bootstrap.sh first." >&2
exit 1
fi
}
log() {
echo "[INFO] $*"
}
TMP_DIR="$SYS_DEBUG_TMP_DIR"
mkdir -p "$TMP_DIR"