3.7 KiB
3.7 KiB
name, description, route_id
| name | description | route_id |
|---|---|---|
| hololake-internal-release-packaging | Build, validate, archive, and hand off repeatable HoloLake Era internal installers for macOS and Windows. | HLP-SKILL-RELEASE-001 |
HoloLake Era 内测安装包技能
当任务包含“打包新版”“生成 Mac/Windows 安装包”“把安装包放到桌面”或“恢复上次打包方法”时使用本技能。
唯一版本源
src-tauri/tauri.conf.json 的 version 是内测构建唯一版本源。package.json 与 src-tauri/Cargo.toml 应在版本提交中同步更新。构建脚本会拒绝 HOLOLAKE_VERSION 与配置版本不一致的请求,避免文件名、应用版本与仓库状态分叉。
固定入口
pnpm test:internal-release
pnpm package:internal:macos
pnpm package:internal:windows
- macOS 必须在 Apple Silicon Mac 上执行,产物默认进入
artifacts/internal/<version>/。 - Windows 必须在
JD-FD-PRIMARYLinux 构建节点执行。脚本使用cargo-xwin生成 x86-64 Windows 本体,再使用 NSIS 生成安装程序。 - 京东节点使用
scripts/cargo-config-jd.toml的国内稀疏索引;不要临时改回境外 crates.io 下载路径。
构建前检查
- 工作树干净,当前分支包含目标 UI 和资源。
tauri.conf.json、Cargo.toml、package.json版本一致。- 运行相关测试、lint、TypeScript/Vite 构建。
- 确认公共研发入口和 GLS 文件已经进入源码:
https://guanghulab.com/fifth-domain/bingshuo/hololake-platformsrc-tauri/resources/public-architecture/gls-system-architecture.json
- 不把服务器密钥、邮箱授权码、令牌或私人域内容写入仓库和安装包。
强制验收
scripts/verify-internal-package-content.mjs 是发布硬门:
- 必须找到公共研发仓库标记;
- 必须找到
GLS-SYS-ARCH-001; - 发现私人域标记立即失败;
- Mac 必须通过
codesign --verify --deep --strict与hdiutil verify; - Windows 载荷必须为
PE32+ x86-64,NSIS 安装包必须存在; - 每个安装包必须生成同名
.sha256,回传后再次校验。
内测 Mac 包是 ad-hoc 签名、未公证;Windows 包在没有商业证书时未做 Authenticode 签名。交付时必须明确说明,不能描述成正式签名发行版。
Windows 构建恢复顺序
pnpm install --frozen-lockfile- Tauri
--no-bundle+cargo-xwin交叉编译 Windows x64 本体 - 将应用、本地图标、MCP、Agent 文档和公共 GLS 资源组成 stage
scripts/windows-installer.nsi生成单用户 NSIS 安装包- 对
dist与 stage 运行内容校验 - 生成 SHA-256,并归档到服务器的版本目录
Linux 上的 Tauri CLI 不提供 nsis bundle target。不要再次尝试 tauri build --bundles nsis;这正是本仓库将“交叉编译”和“NSIS 封装”拆开的原因。
故障护栏
No matching runner:是 runner/标签状态,不是应用源码错误;可直接登录已授权的 JD 节点运行同一脚本。- crates.io 或 Rust 下载过慢:保留 rsproxy 配置和独立
CARGO_HOME。 - NSIS 找不到图标或 stage:所有传给 NSIS 的路径必须是绝对路径。
- Windows 链接器报告缺少外部 PDB 的
LNK4099:交叉编译的调试信息警告;只有最终链接失败或没有生成 PE32+ x64 本体才算失败。 - 产物已生成但未回传:不算完成;服务器归档、桌面回传、二次校验是同一个闭环。
仓库回写
每次修正构建方法后,将脚本、技能文档和验证结果提交到国内主仓库。发布技能属于 bingshuo/hololake-platform,不要写入 REPO-004 零件库。线上主分支能够读到本技能后,才算方法完成沉淀。