iOSBuildServer/backend/schemas.py
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

62 lines
1.3 KiB
Python

"""Pydantic 模型"""
from datetime import datetime
from typing import Optional
from pydantic import BaseModel
# 打包任务
class TaskCreate(BaseModel):
app_id: str
build_type: str
scheme_id: str
obfuscation: bool = False
branch: str = "main"
class TaskResponse(BaseModel):
id: str
app_id: str
app_name: str
build_type: str
scheme_id: str
scheme_name: str
obfuscation: bool
branch: str
status: str
current_step: Optional[str]
created_at: Optional[datetime]
started_at: Optional[datetime]
completed_at: Optional[datetime]
ipa_path: Optional[str]
oss_url: Optional[str]
dsym_path: Optional[str]
obfuscation_maps_path: Optional[str]
qr_code_path: Optional[str]
build_dir: Optional[str]
error_message: Optional[str]
error_category: Optional[str] = None
config_json: Optional[str]
has_log: bool = False
class Config:
from_attributes = True
# 登录
class LoginRequest(BaseModel):
username: str
password: str
class LoginResponse(BaseModel):
token: str
username: str
is_admin: bool
# 打包配置
class BuildConfigUpdate(BaseModel):
max_concurrent_builds: Optional[int] = None
build_dir_retention_hours: Optional[int] = None
build_base_dir: Optional[str] = None