docs(docs): 新增 CICD 参考实现规范
Some checks failed
CI TypeScript / quality (push) Failing after 6s
CI TypeScript / arch-scan (push) Has been skipped
CI TypeScript / docker-build (map[context:. dockerfile:apps/teacher-portal/Dockerfile name:teacher-portal]) (push) Has been skipped
CI TypeScript / docker-build (map[context:. dockerfile:services/classes/Dockerfile name:classes]) (push) Has been skipped
Docker Build & Push / build-push (map[context:. dockerfile:apps/teacher-portal/Dockerfile name:teacher-portal]) (push) Failing after 3s
Docker Build & Push / build-push (map[context:. dockerfile:services/classes/Dockerfile name:classes]) (push) Failing after 10s
Docker Build & Push / build-push (map[context:./services/api-gateway dockerfile:services/api-gateway/Dockerfile name:api-gateway]) (push) Failing after 8s
CI Go / quality (push) Failing after 1m4s
CI Go / docker-build (push) Has been skipped

- project_rules §15.7: 参考项目位置 + 关键配置点(container/runner 标签/部署方式/网络)

- cicd-runbook §10: 参考项目对照表(配置项、关键差异、修改流程、冲突处理)

- 修正 cicd-runbook runner 标签:self-hosted,deploy → ubuntu-latest
This commit is contained in:
SpecialX
2026-07-08 16:12:45 +08:00
parent c31b3ddeba
commit a1d7fcfd71
2 changed files with 88 additions and 10 deletions

View File

@@ -510,6 +510,23 @@ services/[service]/src/
| `.github/workflows/docker.yml` | Docker 镜像构建与推送main + tag 触发) |
| `.github/workflows/deploy.yml` | 部署到服务器main 触发,需环境审批) |
### 15.7 参考实现(强制参照)
**所有 CI/CD 配置必须参照 `E:\Desktop\CICD\` 项目(同机 Gitea 仓库),不另行自创。**
- **参考项目位置**`E:\Desktop\CICD\.gitea\workflows\ci.yml`(同机单仓库 CI 实现)
- **关键配置点(必须沿用)**
- **Runner 标签**`ubuntu-latest`actrunner 已配置;参考项目用 `CDCD`Edu 改为 `ubuntu-latest`
- **容器化运行**TS 类 job 必须使用 `container: dockerreg.eazygame.cn/node-with-docker:22`(带 docker 的 node 22 镜像,用于在 job 内执行 `docker build`/`docker run`
- **Go 类 job**:使用 `container: golang:1.22-alpine`(仅 quality 阶段),`docker-build` 阶段切换到 `node-with-docker:22` 镜像 + `setup-go`
- **部署方式**:保留 `docker compose`(不照搬参考项目的 `docker run` 单容器方式,因 Edu 是微服务多容器)
- **代理配置**runner 已配置全局代理CI 内不再设置 npm/docker 代理(参考项目中的 `172.17.0.1:7890` 代理段不要照搬)
- **Next.js standalone 构建**teacher-portal 沿用参考项目的 standalone 模式(`output: 'standalone'` + 复制 public/.next/static
- **网络**:部署用 `edu-shared` 外部网络连接服务器已有 MySQL/Redis参考项目用 `1panel-network`Edu 不同)
- **改动需同步**:修改任何 workflow 文件前,先比对参考项目同类配置,确保不偏离上述约定
> 当参考项目与本规范冲突时以本规范为准Edu 是微服务架构,参考项目是单体 Next.js
---
**本规则文件是项目的强制约束,所有 contributor含 AI必须遵守。规则变更需同步更新 004 与 arch.db。**