30 lines
1.1 KiB
Markdown
30 lines
1.1 KiB
Markdown
# 系统架构
|
||
|
||
## 1. 概览
|
||
|
||
MiniCI 采用典型的 **Monorepo** 架构,前端 React 配合后端 Koa,数据持久化使用 SQLite。
|
||
|
||
## 2. 核心模块
|
||
|
||
### 2.1 后端 (apps/server)
|
||
|
||
- **Route System**: 基于 TC39 装饰器的自动扫描路由。
|
||
- **Execution Queue**: 单例模式的执行队列,控制并发并支持任务持久化恢复。
|
||
- **Pipeline Runner**: 核心执行逻辑,利用 `zx` 在独立的工作目录下运行 Shell 脚本。
|
||
- **Data Access**: Prisma ORM 提供类型安全的数据访问。
|
||
|
||
### 2.2 前端 (apps/web)
|
||
|
||
- **Build Tool**: Rsbuild (基于 Rspack),提供极速的开发体验。
|
||
- **UI Framework**: React 19 + Arco Design。
|
||
- **State Management**: Zustand 实现轻量级全局状态。
|
||
|
||
## 3. 部署流 (Pipeline Flow)
|
||
|
||
1. 用户触发部署 -> 创建 `Deployment` 记录 (Status: pending)。
|
||
2. `ExecutionQueue` 捕获新任务 -> 实例化 `PipelineRunner`。
|
||
3. `GitManager` 准备工作目录 (`git clone` 或 `git pull`)。
|
||
4. `PipelineRunner` 逐个执行 `Step` 脚本。
|
||
5. 执行过程中实时更新 `Deployment.buildLog`。
|
||
6. 完成后更新状态为 `success` 或 `failed`。
|