chore(remote43): standardize stable crm repo root

This commit is contained in:
phamnazage-jpg
2026-05-28 10:13:13 +08:00
parent 3a00f1b859
commit 03c4b5236f
8 changed files with 87 additions and 11 deletions

View File

@@ -658,7 +658,7 @@ run_test_remote43_patched_stack_renderers() {
local host_env crm_env bootstrap
host_env="$(render_remote43_host_env "stack-pg" "stack-redis" "db-pass" "sub2api" "admin@sub2api.local" "admin-pass" "jwt-secret" "totp-secret")"
crm_env="$(render_remote43_crm_env "18143" "file:/tmp/sub2api.db?_foreign_keys=on" "crm-token")"
crm_env="$(render_remote43_crm_env "18143" "file:/tmp/sub2api.db?_foreign_keys=on" "crm-token" "/home/ubuntu/sub2api-cn-relay-manager-git-current")"
bootstrap="$(render_remote43_bootstrap_script \
"/home/ubuntu/test-stack" \
"/home/ubuntu/test-stack/.env.host" \
@@ -680,7 +680,9 @@ run_test_remote43_patched_stack_renderers() {
"sub2api" \
"18139" \
"18143" \
"8080")"
"8080" \
"/home/ubuntu/sub2api-cn-relay-manager-git-current" \
"/home/ubuntu/test-stack/sub2api-cn-relay-manager.bundle")"
assert_contains "$host_env" "AUTO_SETUP=true"
assert_contains "$host_env" "DATABASE_HOST=stack-pg"
@@ -688,23 +690,29 @@ run_test_remote43_patched_stack_renderers() {
assert_contains "$crm_env" "SUB2API_CRM_LISTEN_ADDR=127.0.0.1:18143"
assert_contains "$crm_env" "SUB2API_CRM_SQLITE_DSN="
assert_contains "$crm_env" "SUB2API_CRM_ADMIN_TOKEN=crm-token"
assert_contains "$crm_env" "SUB2API_CRM_REPO_ROOT=/home/ubuntu/sub2api-cn-relay-manager-git-current"
local sourced_dsn
sourced_dsn="$(bash -lc 'set -a; source /dev/stdin; set +a; printf "%s" "$SUB2API_CRM_SQLITE_DSN"' <<<"$crm_env")"
[[ "$sourced_dsn" == "file:/tmp/sub2api.db?_foreign_keys=on" ]] || fail "crm env dsn did not survive bash source"
assert_contains "$bootstrap" 'rm -f "$DATA_DIR/install.lock" "$DATA_DIR/config.yaml" "$DATA_DIR/.installed"'
assert_contains "$bootstrap" '-v "$HOST_BINARY:/app/sub2api:ro"'
assert_contains "$bootstrap" '-p "127.0.0.1:$HOST_PORT:$HOST_CONTAINER_PORT"'
assert_contains "$bootstrap" 'REMOTE_REPO_ROOT=/home/ubuntu/sub2api-cn-relay-manager-git-current'
assert_contains "$bootstrap" 'REMOTE_REPO_BUNDLE=/home/ubuntu/test-stack/sub2api-cn-relay-manager.bundle'
assert_contains "$bootstrap" 'git -C "$REMOTE_REPO_ROOT" fetch "$REMOTE_REPO_BUNDLE" main'
assert_contains "$bootstrap" 'git clone "$REMOTE_REPO_BUNDLE" "$REMOTE_REPO_ROOT"'
assert_contains "$bootstrap" '/api/v1/auth/login'
assert_contains "$bootstrap" '/healthz'
assert_contains "$bootstrap" 'source "$1"; set +a; exec "$2"'
}
run_test_setup_remote43_patched_stack_dry_run() {
local tmpdir pack_dir shared_pack_dir host_bin crm_bin operator_env tunnel_script stdout_file ssh_key
local tmpdir pack_dir shared_pack_dir repo_bundle host_bin crm_bin operator_env tunnel_script stdout_file ssh_key
tmpdir="$(mktemp -d)"
trap 'rm -rf "$tmpdir"' RETURN
pack_dir="$tmpdir/pack"
shared_pack_dir="$tmpdir/shared-pack"
repo_bundle="$tmpdir/sub2api-cn-relay-manager-main.bundle"
host_bin="$tmpdir/sub2api-patched"
crm_bin="$tmpdir/server"
operator_env="$tmpdir/operator.env"
@@ -720,6 +728,8 @@ run_test_setup_remote43_patched_stack_dry_run() {
printf '%s\n' 'dummy-key' > "$ssh_key"
chmod +x "$host_bin" "$crm_bin"
git -C "$ROOT_DIR" bundle create "$repo_bundle" main >/dev/null
KEY="$ssh_key" \
REMOTE="ubuntu@example.com" \
STACK_NAME="test-stack" \
@@ -729,6 +739,7 @@ run_test_setup_remote43_patched_stack_dry_run() {
CRM_BINARY="$crm_bin" \
PACK_DIR="$pack_dir" \
LOCAL_SHARED_PACK_DIR="$shared_pack_dir" \
LOCAL_REPO_BUNDLE="$repo_bundle" \
LOCAL_OPERATOR_ENV_FILE="$operator_env" \
LOCAL_TUNNEL_SCRIPT="$tunnel_script" \
REMOTE_ROOT="/home/ubuntu/test-stack" \
@@ -746,11 +757,13 @@ run_test_setup_remote43_patched_stack_dry_run() {
assert_contains "$stdout_text" "remote43 patched stack prepared"
assert_contains "$stdout_text" "local operator env file: $operator_env"
assert_contains "$stdout_text" "remote repo root: /home/ubuntu/sub2api-cn-relay-manager-git-current"
assert_contains "$stdout_text" "DRY_RUN: ssh -i $ssh_key"
assert_contains "$operator_env_text" "CRM_BASE=http://127.0.0.1:18143"
assert_contains "$operator_env_text" "HOST_BASE=http://127.0.0.1:18139"
assert_contains "$operator_env_text" "PACK_PATH=$shared_pack_dir"
assert_contains "$operator_env_text" "REMOTE_HOST_ENV_FILE=/home/ubuntu/test-stack/.env.host"
assert_contains "$operator_env_text" "REMOTE_REPO_ROOT=/home/ubuntu/sub2api-cn-relay-manager-git-current"
assert_contains "$tunnel_text" "-L 18143:127.0.0.1:18143"
assert_contains "$tunnel_text" "-L 18139:127.0.0.1:18139"
}