简化生产一键部署脚本
This commit is contained in:
@@ -44,17 +44,7 @@ if [ -z "$port" ]; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
python3 -m http.server "$port" >/dev/null 2>&1 &
|
||||
server_pid=$!
|
||||
|
||||
cleanup() {
|
||||
kill "$server_pid" 2>/dev/null || true
|
||||
wait "$server_pid" 2>/dev/null || true
|
||||
}
|
||||
|
||||
trap cleanup EXIT INT TERM
|
||||
|
||||
while kill -0 "$server_pid" 2>/dev/null; do
|
||||
while :; do
|
||||
sleep 1
|
||||
done
|
||||
EOF
|
||||
@@ -151,10 +141,6 @@ test_deploy_success() {
|
||||
backend_pid=$(cat "$release_dir/backend/backend.pid")
|
||||
kill -0 "$backend_pid" 2>/dev/null || fail "expected backend pid to be running"
|
||||
|
||||
if ! lsof -nP -iTCP:"$backend_port" -sTCP:LISTEN >/dev/null 2>&1; then
|
||||
fail "expected fake backend to listen on $backend_port"
|
||||
fi
|
||||
|
||||
trap - EXIT INT TERM
|
||||
cleanup_release_dir "$release_dir"
|
||||
}
|
||||
@@ -182,28 +168,6 @@ test_multiple_release_zip_should_fail() {
|
||||
cleanup_release_dir "$release_dir"
|
||||
}
|
||||
|
||||
test_netstat_fallback_should_work() {
|
||||
release_dir=$(mktemp -d)
|
||||
backend_port=$(find_free_port)
|
||||
trap 'cleanup_release_dir "$release_dir"' EXIT INT TERM
|
||||
|
||||
prepare_release_dir "$release_dir" "$backend_port"
|
||||
mkdir -p "$release_dir/fake-port-bin"
|
||||
ln -sf /usr/sbin/netstat "$release_dir/fake-port-bin/netstat"
|
||||
|
||||
(
|
||||
cd "$release_dir"
|
||||
PATH="$release_dir/fake-port-bin:/usr/bin:/bin" ./deploy_from_package.sh
|
||||
)
|
||||
|
||||
assert_file_exists "$release_dir/frontend/dist/index.html"
|
||||
backend_pid=$(cat "$release_dir/backend/backend.pid")
|
||||
kill -0 "$backend_pid" 2>/dev/null || fail "expected backend pid to be running with netstat fallback"
|
||||
|
||||
trap - EXIT INT TERM
|
||||
cleanup_release_dir "$release_dir"
|
||||
}
|
||||
|
||||
test_should_use_ps_ef_for_process_detection() {
|
||||
if rg -n 'pgrep' "$SCRIPT_UNDER_TEST" >/dev/null 2>&1; then
|
||||
fail "expected deploy_from_package.sh not to depend on pgrep"
|
||||
@@ -212,6 +176,10 @@ test_should_use_ps_ef_for_process_detection() {
|
||||
if ! rg -n 'ps -ef' "$SCRIPT_UNDER_TEST" >/dev/null 2>&1; then
|
||||
fail "expected deploy_from_package.sh to use ps -ef for process detection"
|
||||
fi
|
||||
|
||||
if rg -n '\b(ss|lsof|netstat|resolve_frontend_source_dir|is_port_listening)\b' "$SCRIPT_UNDER_TEST" >/dev/null 2>&1; then
|
||||
fail "expected deploy_from_package.sh to remove port detection and unzip compatibility helpers"
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
@@ -219,7 +187,6 @@ main() {
|
||||
test_should_use_ps_ef_for_process_detection
|
||||
test_deploy_success
|
||||
test_multiple_release_zip_should_fail
|
||||
test_netstat_fallback_should_work
|
||||
printf 'PASS: deploy_from_package tests\n'
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user