feat: 构建超时控制、日志持久化、任务删除、pod install 及多项 UI 优化
- 新增 BUILD_TIMEOUT_HOURS 配置,超时自动标记失败 - 日志保存到独立 backend/logs/ 目录,不随构建目录删除 - 新增任务删除 API 及前端删除按钮 - 构建流程增加 pod install 步骤 - 通过文件传递配置避免命令行参数截断 - Provisioning Profile 支持按名称搜索 - dSYM 下载支持目录打包为 zip - 前端端口可配置、历史页增加下载列和耗时显示 - 日志弹窗支持展开/收起详细日志 - 自动生成 upload_key 标识
This commit is contained in:
+28
-3
@@ -1,14 +1,39 @@
|
||||
import { defineConfig } from 'vite'
|
||||
import vue from '@vitejs/plugin-vue'
|
||||
import { readFileSync, existsSync } from 'fs'
|
||||
import { resolve } from 'path'
|
||||
|
||||
// 从项目根目录的 .env 读取端口配置
|
||||
function loadEnv() {
|
||||
const env = {}
|
||||
const envPath = resolve(__dirname, '../.env')
|
||||
if (existsSync(envPath)) {
|
||||
const content = readFileSync(envPath, 'utf-8')
|
||||
for (const line of content.split('\n')) {
|
||||
const trimmed = line.trim()
|
||||
if (trimmed && !trimmed.startsWith('#') && trimmed.includes('=')) {
|
||||
const idx = trimmed.indexOf('=')
|
||||
const key = trimmed.slice(0, idx).trim()
|
||||
const value = trimmed.slice(idx + 1).trim()
|
||||
env[key] = value
|
||||
}
|
||||
}
|
||||
}
|
||||
return env
|
||||
}
|
||||
|
||||
const env = loadEnv()
|
||||
const backendPort = env.BACKEND_PORT || '8000'
|
||||
const frontendPort = env.FRONTEND_PORT || '3000'
|
||||
|
||||
export default defineConfig({
|
||||
plugins: [vue()],
|
||||
server: {
|
||||
port: 3000,
|
||||
port: parseInt(frontendPort),
|
||||
proxy: {
|
||||
'/api': 'http://localhost:8000',
|
||||
'/api': `http://localhost:${backendPort}`,
|
||||
'/ws': {
|
||||
target: 'ws://localhost:8000',
|
||||
target: `ws://localhost:${backendPort}`,
|
||||
ws: true,
|
||||
},
|
||||
},
|
||||
|
||||
Reference in New Issue
Block a user