# ADR 0001: 技术选型 ## 背景 需要构建一个轻量级、易扩展且易于本地部署的 CI 系统。 ## 决策 - **语言**: 全栈 TypeScript,确保模型定义在前后端的一致性。 - **后端框架**: Koa。相比 Express 更加轻量,利用 async/await 处理异步中间件更优雅。 - **数据库**: SQLite。CI 系统通常是单机或小规模使用,SQLite 无需独立服务,运维成本极低。 - **执行工具**: `zx`。相比原生的 `child_process`,`zx` 处理 Shell 交互更加直观和安全。 ## 后果 - 优势:开发效率极高,部署简单。 - 挑战:SQLite 在极高并发写入(如数百个任务同时输出日志)时可能存在性能瓶颈。