102 lines
2.0 KiB
Markdown
102 lines
2.0 KiB
Markdown
# 金丝雀/开发/测试部署策略
|
|
|
|
## 环境命名
|
|
|
|
根据新的命名约定,三个环境重新命名为:
|
|
|
|
- **canary** (金丝雀环境): `https://gitea.tailnet-68f9.ts.net/gitea/liurenchaxin.git`
|
|
- **dev** (开发环境): `git@bitbucket.org:capitaltrain/liurenchaxin.git`
|
|
- **beta** (测试环境): `https://github.com/jingminzhang/taigongxinyi.git`
|
|
|
|
## 环境用途
|
|
|
|
- **canary (金丝雀)**: 最新功能测试,早期验证
|
|
- **dev (开发)**: 功能开发和集成测试
|
|
- **beta (测试)**: 预发布测试,用户验收
|
|
|
|
## 部署流程
|
|
|
|
### 1. 日常开发流程
|
|
|
|
```bash
|
|
# 在 canary 环境开发新功能
|
|
git checkout develop
|
|
git pull canary develop
|
|
# 开发完成后
|
|
git add .
|
|
git commit -m "feat: 新功能描述"
|
|
git push canary develop
|
|
```
|
|
|
|
### 2. 集成测试流程
|
|
|
|
```bash
|
|
# 将功能从 canary 推送到 dev 环境
|
|
git checkout dev
|
|
git pull dev main
|
|
git merge develop
|
|
git push dev dev:main
|
|
```
|
|
|
|
### 3. 预发布流程
|
|
|
|
```bash
|
|
# 将功能从 dev 推送到 beta 环境
|
|
git checkout main
|
|
git pull beta main
|
|
git merge dev
|
|
git push beta main
|
|
```
|
|
|
|
## 快速命令
|
|
|
|
### 发布新版本
|
|
|
|
```bash
|
|
# 金丝雀环境发布
|
|
./scripts/quick-release.sh 1.2.3 canary
|
|
|
|
# 开发环境发布
|
|
./scripts/quick-release.sh 1.2.3 dev
|
|
|
|
# 测试环境发布
|
|
./scripts/quick-release.sh 1.2.3 beta
|
|
```
|
|
|
|
### 回滚操作
|
|
|
|
```bash
|
|
# 回滚金丝雀环境
|
|
./scripts/rollback.sh canary 1.2.2
|
|
|
|
# 回滚开发环境
|
|
./scripts/rollback.sh dev 1.2.2
|
|
|
|
# 回滚测试环境
|
|
./scripts/rollback.sh beta 1.2.2
|
|
```
|
|
|
|
### 状态检查
|
|
|
|
```bash
|
|
./scripts/check-status.sh
|
|
```
|
|
|
|
## 分支策略
|
|
|
|
- **develop**: 金丝雀环境主分支
|
|
- **dev**: 开发环境主分支
|
|
- **main**: 测试环境主分支
|
|
|
|
## 标签命名
|
|
|
|
- 金丝雀: `v1.2.3-canary`
|
|
- 开发: `v1.2.3-dev`
|
|
- 测试: `v1.2.3-beta`
|
|
|
|
## 优势
|
|
|
|
1. **清晰的命名**: canary/dev/beta 更符合行业标准
|
|
2. **渐进发布**: 从金丝雀到测试的渐进式验证
|
|
3. **快速回滚**: 每个环境都可以独立回滚
|
|
4. **隔离性好**: 不同环境完全隔离,减少干扰 |