CI测试结果Dashboard系统,用于展示和管理DragonOS项目的CI测试结果。
- 📊 测试结果可视化展示
- 🔍 多维度检索(分支、Commit ID、时间范围、状态等)
- 📁 原始输出文件查看和下载
- 🔐 API Key认证机制
- 👤 后台管理系统
- 🐳 Docker一键部署
- Go 1.21+
- Gin Web框架
- GORM ORM
- MySQL 5.7+
- JWT认证
- Vue 3 + Composition API
- TDesign Vue Next
- Pinia状态管理
- Vue Router
- Vite构建工具
- 复制环境变量文件:
cp .env.example .env-
修改
.env文件中的配置(特别是数据库密码和JWT密钥) -
启动服务:
docker-compose up -d- 访问应用:
- 进入后端目录:
cd backend- 安装依赖:
go mod download-
配置环境变量(参考
.env.example) -
运行数据库迁移:
migrate -path ./migrations -database "mysql://user:password@tcp(localhost:3306)/dragonos_ci" up- 启动服务:
go run cmd/server/main.go- 进入前端目录:
cd frontend- 安装依赖:
npm install- 启动开发服务器:
npm run devGET /api/v1/test-runs- 查询测试运行记录GET /api/v1/test-runs/:id- 获取测试运行详情GET /api/v1/test-runs/:id/test-cases- 获取测例列表GET /api/v1/test-runs/:id/output-files/:fileId- 下载原始输出文件
POST /api/v1/test-runs- 上传测试结果POST /api/v1/test-runs/:id/output-files- 上传原始输出文件
POST /api/v1/admin/login- 管理员登录GET /api/v1/admin/api-keys- 查看API密钥列表POST /api/v1/admin/api-keys- 创建API密钥DELETE /api/v1/admin/api-keys/:id- 删除API密钥
dragonos-ci-dashboard/
├── backend/ # Go后端服务
│ ├── cmd/
│ │ └── server/ # 主程序入口
│ ├── internal/
│ │ ├── api/ # API路由和处理器
│ │ ├── models/ # 数据模型
│ │ ├── services/ # 业务逻辑层
│ │ ├── middleware/ # 中间件
│ │ ├── config/ # 配置管理
│ │ └── storage/ # 文件存储处理
│ ├── migrations/ # 数据库迁移文件
│ └── pkg/ # 公共包
├── frontend/ # Vue3前端
│ └── src/
│ ├── views/ # 页面组件
│ ├── components/ # 通用组件
│ ├── api/ # API调用
│ ├── router/ # 路由配置
│ ├── stores/ # 状态管理
│ └── utils/ # 工具函数
└── docker-compose.yml # Docker编排配置
请参考项目根目录下的.cursorrules文件。
MIT License