Some checks failed
Complete CI/CD Pipeline / security-scan (push) Has been cancelled
Complete CI/CD Pipeline / build-and-test (push) Has been cancelled
Complete CI/CD Pipeline / deploy-dev (push) Has been cancelled
Complete CI/CD Pipeline / deploy-prod (push) Has been cancelled
Complete CI/CD Pipeline / cleanup (push) Has been cancelled
3.0 KiB
3.0 KiB
井字过三关游戏 - 完整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://<server-ip>/tic-tac-toe-dev/ - 文件路径:
/var/www/html/tic-tac-toe-dev/
生产环境
- URL:
http://<server-ip>/tic-tac-toe/ - 文件路径:
/var/www/html/tic-tac-toe/
自托管Runner配置
要使CI/CD流水线正常工作,需要在目标服务器上配置Gitea Actions Runner:
# 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
验证部署
部署完成后,可以通过以下方式验证:
- 访问开发环境URL检查功能
- 访问生产环境URL确认部署成功
- 检查Web服务器日志
- 验证游戏功能是否正常
故障排除
常见问题
- 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根目录路径
高级功能
- 添加单元测试步骤
- 集成代码质量检查工具
- 添加性能测试
- 配置通知机制