2ebdb08a2f
修复仅用 useDidShow 导致一直加载中;顶栏标题左右等宽居中;走马灯改用 View 双份文本动画。发版默认改生产。 Co-authored-by: Cursor <cursoragent@cursor.com>
92 lines
2.9 KiB
Markdown
92 lines
2.9 KiB
Markdown
---
|
||
name: dukang-release
|
||
description: >-
|
||
杜康好客发布流程:dev→测试(staging),main→生产;同机双栈。
|
||
Use when the user says 发布、上传、deploy、上线、发版、发测试、发生产,
|
||
or @杜康发布 / @dukang-release.
|
||
---
|
||
|
||
# 杜康发布
|
||
|
||
同机双栈:`/opt/dukang-staging`(测试)与 `/opt/dukang`(生产)。**仅用户明确要求发布时执行。**
|
||
|
||
## 分支与环境
|
||
|
||
| 分支 | 环境 | 目录 | 端口 | 域名 |
|
||
|------|------|------|------|------|
|
||
| `dev_jacy` | 日常开发 | 本机 | — | — |
|
||
| `dev` | **staging 测试** | `/opt/dukang-staging` | 8190–8194 | `*-test.dukanghaoke.com` |
|
||
| `main` | **production 生产** | `/opt/dukang` | 8090–8094 | `*.dukanghaoke.com` |
|
||
|
||
默认:`dev_jacy` → merge → `dev` → merge → `main` → **发生产**。勿 force push `main`/`dev`。
|
||
|
||
> **团队约定(2026-08)**:用户说「发布 / 发版 / 直接发版」且**未特别强调**时 → **发生产(production)**。
|
||
> 仅当用户明确说「发测试 / staging / 测试环境」时 → 发 staging。
|
||
|
||
用户说「发生产 / 上线生产 / 发版」→ 用 `deploy-prod.sh`。
|
||
用户说「发测试」→ 用 `deploy-staging.sh`。
|
||
|
||
## 标准流程(Windows)
|
||
|
||
PowerShell 下 **分支名必须加引号**。
|
||
|
||
### A. 发测试(日常)
|
||
|
||
```powershell
|
||
# 1. 在 dev_jacy 提交(用户要求时)
|
||
git push -u origin HEAD
|
||
git checkout "dev"
|
||
git pull origin "dev"
|
||
git merge "dev_jacy" -m "merge(dev_jacy): <简述>"
|
||
git push origin "dev"
|
||
git checkout "dev_jacy"
|
||
|
||
# 2. 发 staging
|
||
& "C:\Program Files\Git\bin\bash.exe" "<repo>/deploy/deploy-staging.sh" -- --skip-db
|
||
```
|
||
|
||
### B. 发生产(验收后)
|
||
|
||
```powershell
|
||
git checkout "main"
|
||
git pull origin "main"
|
||
git merge "dev" -m "merge(dev): <简述>"
|
||
git push origin "main"
|
||
git checkout "dev_jacy"
|
||
|
||
& "C:\Program Files\Git\bin\bash.exe" "<repo>/deploy/deploy-prod.sh" -- --skip-db
|
||
```
|
||
|
||
- 默认加 `--skip-db`(无迁移时)
|
||
- 有 Prisma 迁移:先在 **staging** 跑通(可 `--seed` / `--accept-data-loss`),再生产去掉 `--skip-db`
|
||
- Staging 微信:正式号 + 全 Mock(`.env.staging`)
|
||
- `deploy/deploy.env` 提供 `DEPLOY_HOST`、`STAGING_APP_ROOT`、`PROD_APP_ROOT`(勿提交密钥)
|
||
|
||
### 首次启用 Staging
|
||
|
||
服务器一次性:`bash deploy/bootstrap-staging.sh`(见脚本说明)→ 配 `.env.staging` → DNS `*-test` → nginx → `deploy-staging.sh -- --seed`
|
||
|
||
### 同步环境变量
|
||
|
||
```powershell
|
||
bash deploy/sync-api-env.sh staging
|
||
bash deploy/sync-api-env.sh production
|
||
```
|
||
|
||
## 等待完成
|
||
|
||
- 出现 `发版完成`
|
||
- `exit_code: 0`
|
||
- `mini-user(h5): 200` / `api: 200`
|
||
|
||
## 回复用户
|
||
|
||
说明:环境(测试/生产)、commit、建议硬刷验证。测试后台有橙色「测试环境」条。
|
||
|
||
## 禁止
|
||
|
||
- 不 amend 已推送 commit;不 force push `main`/`dev`
|
||
- 不把 `.env*` 私钥打进仓库
|
||
- **禁止**再用 `dev` 直发生产
|
||
- 用户只说「修好」未说发布 → 只改代码,不发版
|