diff --git a/CICD_SETUP_GUIDE.md b/CICD_SETUP_GUIDE.md new file mode 100644 index 0000000..2716719 --- /dev/null +++ b/CICD_SETUP_GUIDE.md @@ -0,0 +1,116 @@ +# 井字过三关游戏 - 完整CI/CD流水线配置指南 + +## 概述 +本文档详细说明如何配置完整的CI/CD流水线,实现井字过三关游戏项目的自动化构建、测试和部署。 + +## CI/CD 流水线结构 + +### 1. 触发机制 +- **Push触发**: 当代码推送到main分支时自动触发 +- **Pull Request触发**: 当创建或更新Pull Request到main分支时触发 + +### 2. 工作流详情 + +#### Job 1: build-and-test +- **运行环境**: Ubuntu最新版 +- **任务**: + - 检出代码 + - 设置Node.js环境 + - 验证HTML、CSS、JS文件完整性 + - 运行基本测试 + +#### Job 2: security-scan +- **运行环境**: Ubuntu最新版 +- **任务**: + - 对代码进行安全扫描 + - 检查潜在的安全漏洞 + +#### Job 3: deploy-dev +- **运行环境**: 自托管Runner +- **依赖**: build-and-test 和 security-scan +- **任务**: + - 部署到开发环境 `/var/www/html/tic-tac-toe-dev` + - 设置适当权限 + +#### Job 4: deploy-prod +- **运行环境**: 自托管Runner +- **依赖**: deploy-dev +- **任务**: + - 部署到生产环境 `/var/www/html/tic-tac-toe` + - 设置适当权限 + +#### Job 5: cleanup +- **运行环境**: 自托管Runner +- **依赖**: deploy-prod +- **任务**: + - 清理临时文件 + +## 部署路径 + +### 开发环境 +- URL: `http:///tic-tac-toe-dev/` +- 文件路径: `/var/www/html/tic-tac-toe-dev/` + +### 生产环境 +- URL: `http:///tic-tac-toe/` +- 文件路径: `/var/www/html/tic-tac-toe/` + +## 自托管Runner配置 + +要使CI/CD流水线正常工作,需要在目标服务器上配置Gitea Actions Runner: + +```bash +# 1. 安装Gitea Actions Runner +sudo apt update +sudo apt install -y gitea-actions-runner + +# 2. 配置Runner连接到Gitea服务器 +# 获取Runner令牌(在Gitea管理面板中) + +# 3. 启动Runner服务 +sudo systemctl enable gitea-actions-runner +sudo systemctl start gitea-actions-runner +``` + +## 权限要求 + +Runner需要以下权限: +- 创建目录: `/var/www/html/tic-tac-toe-dev` 和 `/var/www/html/tic-tac-toe` +- 复制文件到Web目录 +- 更改文件所有权为 `www-data:www-data` +- 设置文件权限为 `644` + +## 验证部署 + +部署完成后,可以通过以下方式验证: + +1. 访问开发环境URL检查功能 +2. 访问生产环境URL确认部署成功 +3. 检查Web服务器日志 +4. 验证游戏功能是否正常 + +## 故障排除 + +### 常见问题 +- Runner未运行: 检查服务状态 `systemctl status gitea-actions-runner` +- 权限错误: 确保Runner有足够的权限写入Web目录 +- 网络问题: 确认服务器间网络连接正常 + +### 日志查看 +- Gitea Actions日志: 在Gitea界面上查看 +- Web服务器日志: `/var/log/apache2/` 或 `/var/log/nginx/` +- Runner日志: `/var/log/gitea-actions-runner/` + +## 扩展选项 + +### 环境变量 +可以在Gitea中设置以下环境变量: +- `DEV_SERVER`: 开发服务器地址 +- `PROD_SERVER`: 生产服务器地址 +- `WEB_ROOT`: Web根目录路径 + +### 高级功能 +- 添加单元测试步骤 +- 集成代码质量检查工具 +- 添加性能测试 +- 配置通知机制 \ No newline at end of file