ci: 添加 Gitea Actions 部署流水线 + K3s 清单

对齐 jimeng-clone 的流水线结构(master→prod / dev→dev),适配 AirShelf 纯静态形态:
- 电商AI平台/Dockerfile · 纯 nginx,无 build 阶段
- 电商AI平台/nginx.conf · 多入口 try_files,不 fallback 到 index.html
- k8s/ · web-deployment + ingress + cert-issuer + redirect middleware
- .gitea/workflows/deploy.yaml · build/push 重试 3 次,deploy 重试 5 次,失败上报日志中心
- prod 域名 airshelf.airlabs.art / dev 域名 airshelf.test.airlabs.art

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
zyc
2026-05-15 18:12:56 +08:00
co-authored by Claude Opus 4.7
parent cae935588b
commit 9bcf943e82
9 changed files with 371 additions and 0 deletions
+20
View File
@@ -31,3 +31,23 @@ AirShelf/
├── <未来项目 B>/
└── <未来项目 C>/
```
---
## 部署
CI/CD 走 Gitea Actions + 火山引擎 CR + K3s(traefik + cert-manager)。
| 分支 | 环境 | 域名 | Image tag |
| --- | --- | --- | --- |
| `master` | production | `airshelf.airlabs.art` | `prod-YYYYMMDD-<sha7>` |
| `dev` | development | `airshelf.test.airlabs.art` | `dev-YYYYMMDD-<sha7>` |
推到对应分支会自动触发 [.gitea/workflows/deploy.yaml](.gitea/workflows/deploy.yaml):
checkout → docker build/push (`airshelf-web`,无构建阶段、纯 nginx + 静态) → kubectl apply [k8s/](k8s/) → rollout restart。
构建上下文是 `电商AI平台/`,Dockerfile/nginx.conf 都在该子目录。当前仅一个项目,故 image 名固定 `airshelf-web`;若未来加兄弟项目,流水线需要扩展为按项目分别构建。
**Gitea 仓库需要配置的 Secrets:**
- prod: `CR_PROD_PASSWORD` · `VOLCANO_PROD_KUBE_CONFIG`
- dev: `CR_SERVER` · `CR_USERNAME` · `CR_PASSWORD` · `VOLCANO_TEST_KUBE_CONFIG`