Skip to content

v0.4.1 三平台发行:Windows / Linux / macOS 原生 runner 构建与冒烟

Latest

Choose a tag to compare

@github-actions github-actions released this 24 Oct 13:12
· 6 commits to main since this release

本版重点:不止 Windows —— 三平台正式出包

v0.4.0 只有 Windows 产物。这一版把 14 号文档 §3.1 的 P0 发行矩阵接进 CI:每个平台的安装包都在该平台的原生 runner 上构建,并在同一平台上跑完 golden-path e2e 与产物冒烟才允许进 Release。本机没有 Linux/macOS 环境,所以这里没有一行"理论上能跑"。

下载与安装

平台 文件 安装方式
Windows x64 ToAPI-Setup-0.4.1-win-x64.exe 常规安装,可改目录,建桌面快捷方式
Windows x64 便携 ToAPI-0.4.1-win-x64.zip 解压即用
Linux x64(任意发行版) ToAPI-0.4.1-linux-x86_64.AppImage chmod +x 后直接运行;无 FUSE 的容器加 APPIMAGE_EXTRACT_AND_RUN=1
Debian/Ubuntu/统信 UOS ToAPI-0.4.1-linux-amd64.deb sudo apt install ./ToAPI-0.4.1-linux-amd64.deb
Fedora/RHEL/银河麒麟 ToAPI-0.4.1-linux-x86_64.rpm sudo rpm -i ToAPI-0.4.1-linux-x86_64.rpm
Linux 通用 ToAPI-0.4.1-linux-x64.tar.gz 解压后运行 toapi
Apple Silicon Mac ToAPI-0.4.1-mac-arm64.dmg / .zip 见下方"未签名说明"

校验:sha256sum -c 配合 sha256sums.txt(格式 <hash> *<文件名>)。

未签名说明(不藏着)

本轮没有 Windows Authenticode 证书,也没有 Apple 开发者证书与公证,所以:

  • Windows:SmartScreen 首次运行会提示"未知发布者",点「仍要运行」。
  • macOS:未签名、未公证。首次打开请在 Finder 里右键 App →「打开」→「打开」;
    或命令行 xattr -dr com.apple.quarantine /Applications/ToAPI.app。
    被 Gatekeeper 直接拦掉、或在企业管控设备上无法绕过右键打开的,请等签名版本,不要用来做 CI 关键路径。
  • Intel Mac(x86_64)本轮不出包:需要另一台 Intel runner 或 universal 构建,已排进后续版本。

Linux 的界面差异(按 06/14 号文档执行,不是缺陷)

  • 只有 Windows 用无边框窗口 + 自绘标题栏;Linux/macOS 保留系统原生窗口装饰。
  • 「关闭窗口时最小化到托盘」在 Linux 默认关闭:GNOME 等桌面环境常没有可用的状态栏托盘,默认隐藏窗口等于把应用藏没了。需要常驻的(跑定时回归)请在「通知设置」里手动打开,或在 KDE/Cinnamon 等有托盘的环境直接开启。Windows/macOS 仍默认开启。

macOS 托盘驻留的真实修复

CI 的 macOS e2e 暴露出一个只在 mac 上存在的问题:窗口收进托盘后系统会对应用做 App Nap,主进程定时器被降频,"关窗后继续按计划跑定时任务"在 mac 上不成立。现在收进托盘期间显式 powerSaveBlocker.start('prevent-app-suspension'),唤回窗口或退出时释放;只作用于 darwin,不影响屏幕休眠策略。

验证记录(本次 CI 实测,非本地推断)

  • windows-latest:npm test 253 例全绿 → verify:flow 真机两轮全绿(含托盘驻留→关窗退出、定时任务→通知带报告路径)→ NSIS + zip 打包 → 产物冒烟 PASS。
  • ubuntu-22.04:同一套测试在 Linux 上全绿(node:sqlite 真实读写)→ xvfb 下 e2e 全绿 → AppImage/deb/rpm/tar.gz 四包全部产出 → AppImage 在本平台冒烟 PASS(握手、面板圆角、无 emoji、无脚本错误)。
  • macos-14:测试全绿 → e2e 全绿 → dmg + zip → 未签名 .app 冒烟 PASS。
  • 汇总 job 校验产物数量并生成 sha256sums.txt。

顺带修掉的工程问题

  • CI 门禁(pr.yml)在 ubuntu 与 windows 双平台跑 npm run gate;首次运行即暴露 Windows runner 检出 CRLF 导致 prettier --check 全线误报 → 加 .gitattributes 统一 eol=lf。
  • 三栏拖宽/分屏的布局断言改为先固定 1280×800 视口:Windows runner 上窗口尺寸与本机不同,阈值断言会误报(实测 URL 187px)。
  • 定时调度测试改为不依赖自然触发时钟(间隔取 1 小时 + 手工拨回 next_run_at),慢机器上排队/并发计数不再抖动。
  • verify:flow 加 CDP 30s 超时、步骤日志与 12 分钟看门狗:macOS 那次无声卡死现在 30 秒内就报出卡在哪一步。
  • electron-builder 显式 --publish never:tag 触发时它会自行尝试发布到 GitHub Releases 并因拿不到 token 失败。

尚未做

macOS Intel 包、Windows arm64 包、签名与公证、GPG 签名、龙芯 loong64 与 UOS 专项冒烟(14 号文档 §3.2 已列风险与路线)。