fix: 重新生成 docs
This commit is contained in:
14
docs/decisions/0001-tech-stack.md
Normal file
14
docs/decisions/0001-tech-stack.md
Normal file
@@ -0,0 +1,14 @@
|
||||
# ADR 0001: 技术选型
|
||||
|
||||
## 背景
|
||||
需要构建一个轻量级、易扩展且易于本地部署的 CI 系统。
|
||||
|
||||
## 决策
|
||||
- **语言**: 全栈 TypeScript,确保模型定义在前后端的一致性。
|
||||
- **后端框架**: Koa。相比 Express 更加轻量,利用 async/await 处理异步中间件更优雅。
|
||||
- **数据库**: SQLite。CI 系统通常是单机或小规模使用,SQLite 无需独立服务,运维成本极低。
|
||||
- **执行工具**: `zx`。相比原生的 `child_process`,`zx` 处理 Shell 交互更加直观和安全。
|
||||
|
||||
## 后果
|
||||
- 优势:开发效率极高,部署简单。
|
||||
- 挑战:SQLite 在极高并发写入(如数百个任务同时输出日志)时可能存在性能瓶颈。
|
||||
15
docs/decisions/0002-state.md
Normal file
15
docs/decisions/0002-state.md
Normal file
@@ -0,0 +1,15 @@
|
||||
# ADR 0002: 状态管理
|
||||
|
||||
## 背景
|
||||
需要在前端管理用户信息、全局配置以及各页面的复杂 UI 状态。
|
||||
|
||||
## 决策
|
||||
- **全局状态**: 使用 Zustand。
|
||||
- **理由**:
|
||||
- 相比 Redux 模板代码极少。
|
||||
- 相比 Context API 性能更好且不引起全量重绘。
|
||||
- 符合 React 19 的 Concurrent 模式。
|
||||
- **持久化**: 对关键状态(如 Token)使用 Zustand 的 persist 中间件。
|
||||
|
||||
## 后果
|
||||
状态管理逻辑高度内聚在 `apps/web/src/stores` 中。
|
||||
12
docs/decisions/0003-pipeline-execution.md
Normal file
12
docs/decisions/0003-pipeline-execution.md
Normal file
@@ -0,0 +1,12 @@
|
||||
# ADR 0003: 流水线执行策略
|
||||
|
||||
## 背景
|
||||
如何确保流水线执行的隔离性与可靠性。
|
||||
|
||||
## 决策
|
||||
- **工作目录**: 每个项目在服务器上拥有独立的 `projectDir`。
|
||||
- **执行器**: 采用线性执行。目前不支持多步骤并行,以确保日志顺序的确定性。
|
||||
- **队列**: 使用内存队列 + 数据库扫描实现。系统重启后能通过数据库中的 `pending` 状态恢复任务。
|
||||
|
||||
## 后果
|
||||
目前的隔离级别为目录级。未来可能需要引入 Docker 容器化执行以增强安全性。
|
||||
Reference in New Issue
Block a user