Files
getDomain/docs/09_domainCheck_交付打包说明.md
2026-04-18 23:52:51 +08:00

158 lines
4.4 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 09 domainCheck 交付打包说明
## 一、用途
用于在 Windows 或 Linux 上把当前可交付内容整理成一份发布包,便于:
- 发给运维或部署同事
- 存档版本快照
- 迁移到 Linux 服务器前做交付留档
## 二、打包脚本
根目录脚本:
- `package_domain_release.ps1`
- `verify_domain_release.ps1`
- `prepare_final_release.ps1`
- `show_latest_release.ps1`
- `package_domain_release.sh`
- `verify_domain_release.sh`
- `prepare_final_release.sh`
- `show_latest_release.sh`
Windows 执行方式:
```powershell
powershell -ExecutionPolicy Bypass -File .\package_domain_release.ps1
```
Linux / 海外主机执行方式:
```bash
bash ./package_domain_release.sh
```
如需一键完成“打包 + 验包 + 生成最终准备报告”:
```powershell
powershell -ExecutionPolicy Bypass -File .\prepare_final_release.ps1
```
```bash
bash ./prepare_final_release.sh
```
如需快速查看当前最新交付物:
```powershell
powershell -ExecutionPolicy Bypass -File .\show_latest_release.ps1
```
```bash
bash ./show_latest_release.sh
```
注意:
- `show_latest_release.*` 现在不只是“显示最近一次 final report 是否存在”
- 它会额外校验 `final_release_report.json` 是否真的对应当前 `latest_release.*`
- 只有 `final_release_report_matches_latest=true` 时,`final_release_ok=true` 才有意义
- `final_release_gate_decision / blocked_reasons / verify_ok / smoke_test_ok` 用于解释“为什么当前能签 / 不能签”
- Ops Center 里的“直接创建 Release / 一键 Worker 灰度 / 一键 Control 发布”
- 现在会硬性依赖 `final_release_ok=true`
- 如果 final report 缺失、过期或门禁未 ready前端会禁用按钮后端接口也会拒绝执行
## 三、输出位置
打包后会生成:
- `release/domaincheck_release_时间戳/`
- `release/domaincheck_release_时间戳.zip`
- `release/domaincheck_release_时间戳.tar.gz`
- `release/domaincheck_release_时间戳.sha256.txt`
- `release/latest_release.txt`
- `release/latest_release.json`
- `release/final_release_report.json`
## 四、当前会包含的内容
- `docs/`
- `scripts/`
- `scripts/` 中会同时带上 PowerShell 和 Shell 版发布脚本
- `domain-api/`
- `app`
- `deploy`
- `README.md`
- `requirements.txt`
- `.env.example`
- `domain-web/`
- `src`
- `deploy`
- `README.md`
- `package.json`
- `package-lock.json`
- `tsconfig`
- `vite.config.ts`
- `.env.example`
- `.env.production.example`
- 若存在则带上 `dist`
同时会生成:
- `release_manifest.json`
- `README_RELEASE.txt`
- `smoke_test_report.json`
- 若打包时本机 Web/API 正常运行,则自动生成并随包带出
- `.sha256.txt`
- 用于校验 zip 交付包完整性
## 五、建议使用顺序
1. 先阅读 `docs/08_domainCheck_交付说明.md`
2. 查看 `release_manifest.json`
3. 查看 `smoke_test_report.json`
4. 核对 `.sha256.txt`
或执行:
```powershell
powershell -ExecutionPolicy Bypass -File .\verify_domain_release.ps1
```
```bash
bash ./verify_domain_release.sh
```
5. Windows 联调先跑 `scripts/smoke_test_stack.ps1`
6. Linux 部署前阅读:
- `docs/05_domainCheck_Linux部署清单.md`
- `docs/07_domainCheck_WebLinux发布验收清单.md`
- `domain-api/deploy/linux/README.md`
## 六、说明
当前打包内容偏向“交付部署包”和“源代码归档包”,不包含:
- `node_modules`
- Python 虚拟环境
- 临时运行日志
- 数据库数据本体
这样更适合交付、存档和迁移。
Windows 默认产物为 `.zip`Linux 默认产物为 `.tar.gz`;两者都会生成同结构的 `release_manifest.json / .sha256.txt / latest_release.*`,便于海外控制面统一管理。
`latest_release.txt / latest_release.json` 用于快速定位“当前最新一份交付包”,避免人工翻目录。
若打包目录本身是 Git 仓库,脚本还会自动写入 `commit_sha / commit_ref`;海外控制面在创建 Release 时可以直接回填提交号,减少人工抄写出错。
`final_release_report.json` 用于记录最近一次“打包 + 验包”的最终状态。
`show_latest_release.*` 读取这个报告时,还会校验:
- `package_name`
- `archive_path` / `zip_path`
- `sha256`
也就是说,即使目录里留着一份旧的 `final_release_report.json`,只要它不是给当前最新包签出的,`final_release_ok` 也不会误报为 `true`