feat: 实现系统动态更新功能和 Release 创建脚本
主要变更: 1. 动态更新功能 - 新增 Python 更新服务 (docker/update-service.py) - 添加系统更新前端页面 (frontend/src/pages/SystemUpdate.tsx) - 配置 Nginx 代理更新服务 API - 更新 Docker 启动脚本支持多进程管理 - 修复权限验证接口 (AuthController.verify) 2. Release 创建脚本 - 新增 create-release.sh 脚本支持快速创建 GitHub Release - 支持自动拼接 -beta 后缀(pre-release) - 支持无交互模式(--yes 参数) - 添加详细的使用文档 3. GitHub Actions 增强 - 添加更新包构建和上传流程 - 支持 Pre-release 检测和过滤 4. 文档完善 - 添加动态更新技术方案文档 - 添加 Docker 版本号确定流程文档 - 添加 Release 脚本使用说明
This commit is contained in:
Executable
+104
@@ -0,0 +1,104 @@
|
||||
#!/bin/bash
|
||||
|
||||
# PolyHermes 动态更新功能验证脚本
|
||||
|
||||
echo "========================================"
|
||||
echo " PolyHermes 动态更新功能验证"
|
||||
echo "========================================"
|
||||
echo ""
|
||||
|
||||
ERRORS=0
|
||||
|
||||
# 检查文件存在性
|
||||
echo "📋 检查文件..."
|
||||
|
||||
files=(
|
||||
"Dockerfile"
|
||||
"docker/update-service.py"
|
||||
"docker/start.sh"
|
||||
"docker/nginx.conf"
|
||||
"docker-compose.yml"
|
||||
"docker-compose.test.yml"
|
||||
".github/workflows/docker-build.yml"
|
||||
"docs/zh/DYNAMIC_UPDATE.md"
|
||||
)
|
||||
|
||||
for file in "${files[@]}"; do
|
||||
if [ -f "$file" ]; then
|
||||
echo " ✅ $file"
|
||||
else
|
||||
echo " ❌ $file (缺失)"
|
||||
((ERRORS++))
|
||||
fi
|
||||
done
|
||||
|
||||
echo ""
|
||||
echo "📋 检查关键配置..."
|
||||
|
||||
# 检查 Dockerfile 是否包含 BUILD_IN_DOCKER
|
||||
if grep -q "ARG BUILD_IN_DOCKER=true" Dockerfile; then
|
||||
echo " ✅ Dockerfile 包含 BUILD_IN_DOCKER 参数"
|
||||
else
|
||||
echo " ❌ Dockerfile 缺少 BUILD_IN_DOCKER 参数"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 Dockerfile 是否安装 Python
|
||||
if grep -q "python3" Dockerfile; then
|
||||
echo " ✅ Dockerfile 安装 Python"
|
||||
else
|
||||
echo " ❌ Dockerfile 缺少 Python 安装"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 nginx.conf 是否包含更新服务代理
|
||||
if grep -q "/api/update/" docker/nginx.conf; then
|
||||
echo " ✅ Nginx 配置包含更新服务代理"
|
||||
else
|
||||
echo " ❌ Nginx 配置缺少更新服务代理"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 docker-compose.yml 是否包含 ALLOW_PRERELEASE
|
||||
if grep -q "ALLOW_PRERELEASE" docker-compose.yml; then
|
||||
echo " ✅ docker-compose.yml 包含 ALLOW_PRERELEASE"
|
||||
else
|
||||
echo " ❌ docker-compose.yml 缺少 ALLOW_PRERELEASE"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 GitHub Actions 是否包含 IS_PRERELEASE
|
||||
if grep -q "IS_PRERELEASE" .github/workflows/docker-build.yml; then
|
||||
echo " ✅ GitHub Actions 包含 Pre-release 检测"
|
||||
else
|
||||
echo " ❌ GitHub Actions 缺少 Pre-release 检测"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 GitHub Actions 是否包含编译步骤
|
||||
if grep -q "Build Backend JAR" .github/workflows/docker-build.yml; then
|
||||
echo " ✅ GitHub Actions 包含后端编译步骤"
|
||||
else
|
||||
echo " ❌ GitHub Actions 缺少后端编译步骤"
|
||||
((ERRORS++))
|
||||
fi
|
||||
|
||||
# 检查 update-service.py 是否可执行Python语法
|
||||
echo ""
|
||||
echo "📋 检查 Python 语法..."
|
||||
if python3 -m py_compile docker/update-service.py 2>/dev/null; then
|
||||
echo " ✅ update-service.py 语法正确"
|
||||
else
|
||||
echo " ⚠️ update-service.py 语法检查失败(可能需要 Flask)"
|
||||
fi
|
||||
|
||||
echo ""
|
||||
echo "========================================"
|
||||
if [ $ERRORS -eq 0 ]; then
|
||||
echo " ✅ 验证通过!所有检查项正常"
|
||||
else
|
||||
echo " ⚠️ 发现 $ERRORS 个问题"
|
||||
fi
|
||||
echo "========================================"
|
||||
|
||||
exit $ERRORS
|
||||
Reference in New Issue
Block a user