统一打包脚本验收
修改范围
- 将原先散落在
scripts/的构建、打包、签名准备和发布校验脚本归入scripts/packaging/。 - 统一入口为
scripts/packaging/build.py,按win-x64、linux-x64、linux-arm64、osx-x64、osx-arm64、osx-universal、android提供平台快捷入口。 - macOS 架构入口仍共用一个双架构 DMG,发布产物命名和七包白名单不变;iOS 仅保留
ios-check,HarmonyOS 发布继续暂缓。 - 本机产物按平台和版本隔离到
artifacts/local/;CI 显式选择artifacts/release/,使用同一套构建配方。 - 根目录
build-windows.bat兼容旧双击习惯;对应脚本、CI、仓库文档与外部学习文档已同步引用。 - 显式抑制 Flutter 统计输出,避免首次启动提示污染
--version --machine的 JSON;Android 校验工具固定使用 Build Tools 36.0.0。 - 历史 tag 重试需要选择相同 tag 自带的工作流,已增加路径预检与明确提示,不移动旧 tag。
已执行验证
| 项目 | 结果 |
|---|---|
flutter analyze --no-pub |
无问题 |
| 核心包 / 编辑器 / 导图 / 应用 | 21 + 201 + 14 + 187 = 423 项通过 |
| Python 脚本测试 | 默认完整流程时 42 项通过;补充历史 tag 提示测试后 43 项通过 |
| PowerShell 脚本解析 | 通过 |
所有归类后 Shell 脚本的 bash -n |
通过 |
| 三个 workflow 的 YAML 解析与打包路径契约 | 通过 |
| 全部已跟踪 Dart 文件格式检查 | 首次远端检查发现 workspace_screen.dart 的既有换行格式问题;使用固定 Dart SDK 仅做格式修正后本地全量复检通过 |
各目标 --dry-run |
从仓库外的含空格临时目录调用,均成功,无实际构建 |
| 实际 BAT / Shell 快捷入口 | 仓库外调用 Windows -CheckOnly、Android --dry-run、Linux ARM64 / macOS ARM64 --dry-run 均成功 |
| Windows 上请求 Linux 原生构建 | 明确拒绝,返回非零,不误报跨系统构建成功 |
| 子命令失败 | 测试验证后续步骤不执行且保留失败码 |
| Windows 正式 Release + Inno 安装包 | 重试成功,格式、单包 SHA-256 和目录白名单验证通过 |
本机 .NET / MSVC 工具来自 Visual Studio Insiders。第一次默认完整流程通过所有分析与测试后,CL.exe 编译 url_launcher_windows 时以 -1073741819 退出,整体返回 1,没有输出 READY。保留失败日志,显式设置 CMAKE_BUILD_PARALLEL_LEVEL=1、CL=/MP1 后,使用 --skip-tests 仅重试已经通过测试后的构建和打包,成功。并发变更与重试成功不构成对编译器崩溃根因的定论;脚本没有加入自动重试或吞错逻辑。
完整测试日志:artifacts/build-logs/windows-20261018-123438-636.log。成功构建日志:artifacts/build-logs/windows-20261018-123805-943.log。这些是本机忽略文件,不提交日志原文。
本机产物
artifacts/local/win-x64/v0.2.2-build4/
├── Vex-v0.2.2-windows-x64-setup.exe
└── Vex-v0.2.2-windows-x64-setup.exe.sha256安装包大小:32,454,767 字节。
b142364c5a71fd1cd980be9467afa2302bc5b7cc833ef8011c9b2e4e877b3f78该包来自当前工作区,包括既有未提交的内置更新日志修改;并不等于一个新的正式发布。没有运行安装器、启动产品、改变用户数据、修改版本或创建 tag。
验证边界
当前机器为 Windows:本次没有原生执行 Linux DEB、macOS DMG、Android production APK 或 iOS 编译。对应构建配方、路径和签名边界经脚本测试,真实非 Windows 原生工具链仍以对应系统及 CI 结果为准。Actionlint 独立工具因 GitHub 附件下载连接失败未运行,不将 YAML 解析表述为完整 Actions 运行验收。
Git 工作区原有的内置更新日志修改和 docs/桌面体验复核.md 不属于本次脚本归类提交,保持未提交状态;外部学习文档位于独立的 D:\github\md\mds\Vex 目录,不在本仓库 Git 范围内。
有疑问或建议,欢迎到 GitHub 提交 Issue 参与讨论。