iOSBuildServer/start.sh
shen f5919a8229 feat: 构建超时控制、日志持久化、任务删除、pod install 及多项 UI 优化
- 新增 BUILD_TIMEOUT_HOURS 配置,超时自动标记失败
- 日志保存到独立 backend/logs/ 目录,不随构建目录删除
- 新增任务删除 API 及前端删除按钮
- 构建流程增加 pod install 步骤
- 通过文件传递配置避免命令行参数截断
- Provisioning Profile 支持按名称搜索
- dSYM 下载支持目录打包为 zip
- 前端端口可配置、历史页增加下载列和耗时显示
- 日志弹窗支持展开/收起详细日志
- 自动生成 upload_key 标识
2026-06-08 18:56:43 +08:00

59 lines
1.2 KiB
Bash
Executable File

#!/bin/bash
# 一键启动本地开发环境(后端 + 前端)
# 用法: ./start.sh
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
cd "$SCRIPT_DIR"
# 加载 .env
if [ -f .env ]; then
set -a; source .env; set +a
fi
PORT="${BACKEND_PORT:-8000}"
FRONTEND_PORT="${FRONTEND_PORT:-3000}"
# 确保 .env 存在
if [ ! -f .env ]; then
echo "首次运行,创建 .env 配置文件..."
cp .env.example .env
fi
# 确保后端依赖
if [ ! -d ".venv" ]; then
echo "创建 Python 虚拟环境..."
python3 -m venv .venv
fi
source .venv/bin/activate
pip install -r requirements.txt -q
# 确保前端依赖
if [ ! -d "frontend/node_modules" ]; then
echo "安装前端依赖..."
cd frontend && npm install --silent && cd ..
fi
echo "=== iOS 自动打包服务(开发模式)==="
echo " 前端: http://localhost:$FRONTEND_PORT"
echo " 后端: http://localhost:$PORT"
echo " 按 Ctrl+C 停止所有服务"
echo ""
# 清理子进程
cleanup() {
kill $BACKEND_PID $FRONTEND_PID 2>/dev/null
wait $BACKEND_PID $FRONTEND_PID 2>/dev/null
}
trap cleanup INT TERM
# 启动后端
python3 -m uvicorn backend.main:app --host 0.0.0.0 --port "$PORT" --reload &
BACKEND_PID=$!
# 启动前端
cd frontend && npm run dev &
FRONTEND_PID=$!
cd "$SCRIPT_DIR"
wait