[#13] 增加debug模式系统集成测试,使用external network和指定private路径
This commit is contained in:
96
src/sys/debug/scripts/common.sh
Executable file
96
src/sys/debug/scripts/common.sh
Executable 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"
|
||||
Reference in New Issue
Block a user