release: bump version to 0.43.0
This commit is contained in:
46
planet.sh
46
planet.sh
@@ -55,8 +55,8 @@ DATABASE_RETRY_INTERVAL="${DATABASE_RETRY_INTERVAL:-5}"
|
||||
FRONTEND_MAX_RETRIES="${FRONTEND_MAX_RETRIES:-3}"
|
||||
FRONTEND_HEALTH_CHECK_ATTEMPTS="${FRONTEND_HEALTH_CHECK_ATTEMPTS:-10}"
|
||||
FRONTEND_HEALTH_CHECK_INTERVAL="${FRONTEND_HEALTH_CHECK_INTERVAL:-2}"
|
||||
PORT_RELEASE_ATTEMPTS="${PORT_RELEASE_ATTEMPTS:-45}"
|
||||
PORT_RELEASE_INTERVAL="${PORT_RELEASE_INTERVAL:-1}"
|
||||
PORT_RELEASE_ATTEMPTS="${PORT_RELEASE_ATTEMPTS:-15}"
|
||||
PORT_RELEASE_INTERVAL="${PORT_RELEASE_INTERVAL:-0.2}"
|
||||
DEFAULT_BACKEND_PORT="${DEFAULT_BACKEND_PORT:-8000}"
|
||||
DEFAULT_FRONTEND_PORT="${DEFAULT_FRONTEND_PORT:-3000}"
|
||||
DEFAULT_AI_PROVIDER_PORT="${DEFAULT_AI_PROVIDER_PORT:-8010}"
|
||||
@@ -64,7 +64,7 @@ FRONTEND_RUNTIME_BIN="${FRONTEND_RUNTIME_BIN:-}"
|
||||
FRONTEND_RUNTIME_SOURCE="${FRONTEND_RUNTIME_SOURCE:-}"
|
||||
FRONTEND_PID_FILE="/tmp/planet_frontend.pid"
|
||||
FRONTEND_VITE_ENTRY="$SCRIPT_DIR/frontend/node_modules/vite/bin/vite.js"
|
||||
AI_PROVIDER_BUILD_STAMP_FILE="/tmp/planet_aiprovider_build.sha256"
|
||||
AI_PROVIDER_BUILD_STAMP_FILE="$HOME/.cache/planet/aiprovider_build.sha256"
|
||||
AI_PROVIDER_BUILD_LOG_FILE="/tmp/planet_aiprovider_build.log"
|
||||
AI_PROVIDER_IMAGE_NAME="${AI_PROVIDER_IMAGE_NAME:-planet_aiprovider:latest}"
|
||||
AI_PROVIDER_CONTAINER_NAME="${AI_PROVIDER_CONTAINER_NAME:-planet_aiprovider}"
|
||||
@@ -587,11 +587,15 @@ compute_ai_provider_build_fingerprint() {
|
||||
(
|
||||
cd "$SCRIPT_DIR" || exit 1
|
||||
{
|
||||
tar -cf - \
|
||||
aiprovider \
|
||||
docker-compose.yml \
|
||||
docker-compose.simple.yml 2>/dev/null
|
||||
python3 "$SCRIPT_DIR/scripts/compute_aiprovider_dependency_fingerprint.py"
|
||||
find aiprovider \
|
||||
-type f \
|
||||
! -path '*/__pycache__/*' \
|
||||
! -name '*.pyc' \
|
||||
! -name '*.pyo' \
|
||||
| LC_ALL=C sort \
|
||||
| xargs -r stat --format="%Y %s %n" 2>/dev/null
|
||||
sha256sum docker-compose.yml docker-compose.simple.yml 2>/dev/null
|
||||
python3 "$SCRIPT_DIR/scripts/compute_aiprovider_dependency_fingerprint.py" 2>/dev/null
|
||||
}
|
||||
) | sha256sum | awk '{print $1}'
|
||||
}
|
||||
@@ -603,6 +607,7 @@ read_ai_provider_build_stamp() {
|
||||
|
||||
write_ai_provider_build_stamp() {
|
||||
local fingerprint="$1"
|
||||
mkdir -p "$(dirname "$AI_PROVIDER_BUILD_STAMP_FILE")"
|
||||
printf "%s\n" "$fingerprint" > "$AI_PROVIDER_BUILD_STAMP_FILE"
|
||||
}
|
||||
|
||||
@@ -1108,10 +1113,9 @@ cleanup_backend_processes() {
|
||||
local backend_port="${1:-$DEFAULT_BACKEND_PORT}"
|
||||
terminate_backend_processes TERM "$backend_port"
|
||||
|
||||
if ! wait_for_port_release "$backend_port"; then
|
||||
if ! wait_for_port_release "$backend_port" 15 0.2; then
|
||||
terminate_backend_processes KILL "$backend_port"
|
||||
|
||||
wait_for_port_release "$backend_port" || true
|
||||
wait_for_port_release "$backend_port" 15 0.2 || true
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -1246,7 +1250,6 @@ restart_database_service() {
|
||||
|
||||
while [ "$retry" -le "$DATABASE_START_MAX_RETRIES" ]; do
|
||||
if restart_database_services && wait_for_database_health; then
|
||||
sleep 3
|
||||
return 0
|
||||
fi
|
||||
|
||||
@@ -1269,7 +1272,6 @@ start_backend_service() {
|
||||
set_wait_detail "启动数据库"
|
||||
ensure_database_services_healthy
|
||||
log_success "启动数据库已就绪"
|
||||
sleep 3
|
||||
|
||||
# Backend depends on AI Provider reachability, but a backend-only restart
|
||||
# should reuse the existing healthy provider instead of rebuilding or
|
||||
@@ -1391,6 +1393,14 @@ terminate_process_tree() {
|
||||
|
||||
can_bind_port() {
|
||||
local port="$1"
|
||||
if command -v ss >/dev/null 2>&1; then
|
||||
! ss -tlnH 2>/dev/null | awk '{print $4}' | grep -qE ":${port}$"
|
||||
return
|
||||
fi
|
||||
if command -v lsof >/dev/null 2>&1; then
|
||||
[ -z "$(lsof -tiTCP:"${port}" -sTCP:LISTEN 2>/dev/null)" ]
|
||||
return
|
||||
fi
|
||||
python3 - "$port" <<'PY' >/dev/null 2>&1
|
||||
import socket
|
||||
import sys
|
||||
@@ -1416,13 +1426,15 @@ PY
|
||||
|
||||
wait_for_port_release() {
|
||||
local port="$1"
|
||||
local max_attempts="${2:-$PORT_RELEASE_ATTEMPTS}"
|
||||
local interval="${3:-$PORT_RELEASE_INTERVAL}"
|
||||
local attempt=1
|
||||
|
||||
while [ "$attempt" -le "$PORT_RELEASE_ATTEMPTS" ]; do
|
||||
while [ "$attempt" -le "$max_attempts" ]; do
|
||||
if can_bind_port "$port"; then
|
||||
return 0
|
||||
fi
|
||||
sleep "$PORT_RELEASE_INTERVAL"
|
||||
sleep "$interval"
|
||||
attempt=$((attempt + 1))
|
||||
done
|
||||
|
||||
@@ -1449,7 +1461,7 @@ kill_port_if_requested() {
|
||||
terminate_process_tree TERM "$pid"
|
||||
done
|
||||
|
||||
if wait_for_port_release "$port"; then
|
||||
if wait_for_port_release "$port" 15 0.2; then
|
||||
log_success "端口 ${port} 已释放"
|
||||
return 0
|
||||
fi
|
||||
@@ -1460,7 +1472,7 @@ kill_port_if_requested() {
|
||||
terminate_process_tree KILL "$pid"
|
||||
done
|
||||
|
||||
if wait_for_port_release "$port"; then
|
||||
if wait_for_port_release "$port" 15 0.2; then
|
||||
log_success "端口 ${port} 已释放"
|
||||
return 0
|
||||
fi
|
||||
|
||||
Reference in New Issue
Block a user