3.7 KiB
Raw Permalink Blame History

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.jsonversion 是内测构建唯一版本源。package.jsonsrc-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-PRIMARY Linux 构建节点执行。脚本使用 cargo-xwin 生成 x86-64 Windows 本体,再使用 NSIS 生成安装程序。
  • 京东节点使用 scripts/cargo-config-jd.toml 的国内稀疏索引;不要临时改回境外 crates.io 下载路径。

构建前检查

  1. 工作树干净,当前分支包含目标 UI 和资源。
  2. tauri.conf.jsonCargo.tomlpackage.json 版本一致。
  3. 运行相关测试、lint、TypeScript/Vite 构建。
  4. 确认公共研发入口和 GLS 文件已经进入源码:
    • https://guanghulab.com/fifth-domain/bingshuo/hololake-platform
    • src-tauri/resources/public-architecture/gls-system-architecture.json
  5. 不把服务器密钥、邮箱授权码、令牌或私人域内容写入仓库和安装包。

强制验收

scripts/verify-internal-package-content.mjs 是发布硬门:

  • 必须找到公共研发仓库标记;
  • 必须找到 GLS-SYS-ARCH-001
  • 发现私人域标记立即失败;
  • Mac 必须通过 codesign --verify --deep --stricthdiutil verify
  • Windows 载荷必须为 PE32+ x86-64NSIS 安装包必须存在;
  • 每个安装包必须生成同名 .sha256,回传后再次校验。

内测 Mac 包是 ad-hoc 签名、未公证Windows 包在没有商业证书时未做 Authenticode 签名。交付时必须明确说明,不能描述成正式签名发行版。

Windows 构建恢复顺序

  1. pnpm install --frozen-lockfile
  2. Tauri --no-bundle + cargo-xwin 交叉编译 Windows x64 本体
  3. 将应用、本地图标、MCP、Agent 文档和公共 GLS 资源组成 stage
  4. scripts/windows-installer.nsi 生成单用户 NSIS 安装包
  5. dist 与 stage 运行内容校验
  6. 生成 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 零件库。线上主分支能够读到本技能后,才算方法完成沉淀。