--- name: dukang-release description: >- 杜康好客生产发布流程:dev_jacy 提交合并到 dev,并用 deploy.sh 发版。 Use when the user says 发布、上传、deploy、上线、发版, or @杜康发布 / @dukang-release. --- # 杜康发布 将已完成改动发到生产(`aliyun-smarthr`)。**仅用户明确要求发布时执行。** ## 分支约定 | 分支 | 用途 | |------|------| | `dev_jacy` | 日常开发 / 提交 | | `dev` | **发布分支**(服务器拉这个) | 默认:`dev_jacy` → merge → `dev` → 部署。勿 force push `main`/`dev`。 ## 标准流程(Windows) PowerShell 下 **分支名必须加引号**(否则 `checkout` 与 `dev` 会被粘成 `checkoutdev`)。 ### 1. 提交(在 `dev_jacy`) ```powershell git status -sb git add git commit -m @" fix(scope): summary Optional body. "@ ``` - Conventional Commits;不提交 `.env` / `dist` / `node_modules` - 用户未要求 commit 时不要擅自提交 ### 2. 推送并合并到 `dev` ```powershell 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" ``` ### 3. 远程发版 本机无 WSL bash 时用 **Git Bash**: ```powershell & "C:\Program Files\Git\bin\bash.exe" "/deploy/deploy.sh" --branch "dev" -- --skip-db ``` - 默认加 `--skip-db`(无迁移时) - 有 Prisma 迁移时去掉 `--skip-db`,按用户确认是否 `--seed` / `--accept-data-loss` - `deploy/deploy.env` 提供 `DEPLOY_HOST` 等(勿提交密钥) ### 4. 等待完成 后台跑部署时轮询终端输出,成功标志: - 出现 `发版完成` - `exit_code: 0` - `mini-user(h5): 200`(或对应前端 200) 说明:API 健康检查短暂 `FAIL`/`000` 多为重启中,以 `发版完成` + `exit_code: 0` 为准。 ### 5. 回复用户 一句说明:已合并 commit、发版结果、建议微信强刷验证。 ## 常用变体 | 场景 | 做法 | |------|------| | 仅部署已推送的 `dev` | 跳过 commit/merge,直接跑 `deploy.sh --branch "dev" -- --skip-db` | | 检查服务器 | `deploy.sh --branch "dev" --check` | | 含 DB | `deploy.sh --branch "dev" --`(无 skip-db)或按用户给 seed 参数 | ## 禁止 - 不 amend 已推送 commit;不 force push `main`/`master`/`dev` - 不把 `.env` / 私钥打进仓库 - 用户只说「修好」未说发布时 → **只改代码,不发版**