Skip to content

P1:修复并实测 Windows Release 工作流 #3

Description

@2002yy

已确认现状

旧自动 PR #2 已关闭,不应合并。当前 .github/workflows/build.yml 仍有以下发布风险:

  1. 工作流只构建,不运行 README 声称的 43 个单元测试;
  2. workflow_dispatch 虽接收 version,但发布步骤没有设置 tag_name,手动触发时缺少可靠的 Release tag 绑定;
  3. 项目定位和 README 均为 Windows 工具,但 create-release 强依赖 Linux 构建成功;pynput 在无图形环境的 Linux runner 上可能成为不必要的阻断点;
  4. CI 直接调用裸 pyinstaller,没有复用 pack.py 中的 CustomTkinter 资源注入与 --windowed 配置,产物可能与本地验证包不一致;
  5. 发布说明仍写“36+ tests”和固定快捷键,与当前 README 的 43 tests/实际热键说明可能漂移。

建议改造

  • 将正式发布范围收敛为 Windows;Linux 构建若保留,改为非阻断实验产物。
  • 新增测试 job:python -m unittest discover tests -v,构建必须依赖测试通过。
  • 统一唯一打包入口:让 workflow 调用可无交互执行的打包脚本,或把 pack.py 的参数提取成共享构建配置。
  • 为手动触发显式传入并使用 tag_name: ${{ steps.get_version.outputs.version }},校验版本格式与现有 tag 冲突。
  • 上传 Windows ZIP artifact,并在 Release 前对 EXE/ZIP 是否存在、大小是否合理进行检查。
  • 更新 release notes,使测试数量、功能和快捷键来自当前仓库事实。

验收

  • 在干净 Windows runner 上测试全绿;
  • workflow_dispatch 使用新版本号可创建对应 tag 的 Release;
  • 下载 ZIP 后可启动 GUI,无控制台黑窗,CustomTkinter 资源正常;
  • 鼠标连点、键盘连点、宏录制/回放和加密保存完成一次人工 smoke test;
  • 失败时不创建空 Release;
  • README badge 与真实工作流状态一致。

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions