已确认现状
旧自动 PR #2 已关闭,不应合并。当前 .github/workflows/build.yml 仍有以下发布风险:
- 工作流只构建,不运行 README 声称的 43 个单元测试;
workflow_dispatch 虽接收 version,但发布步骤没有设置 tag_name,手动触发时缺少可靠的 Release tag 绑定;
- 项目定位和 README 均为 Windows 工具,但
create-release 强依赖 Linux 构建成功;pynput 在无图形环境的 Linux runner 上可能成为不必要的阻断点;
- CI 直接调用裸
pyinstaller,没有复用 pack.py 中的 CustomTkinter 资源注入与 --windowed 配置,产物可能与本地验证包不一致;
- 发布说明仍写“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 与真实工作流状态一致。
已确认现状
旧自动 PR #2 已关闭,不应合并。当前
.github/workflows/build.yml仍有以下发布风险:workflow_dispatch虽接收version,但发布步骤没有设置tag_name,手动触发时缺少可靠的 Release tag 绑定;create-release强依赖 Linux 构建成功;pynput在无图形环境的 Linux runner 上可能成为不必要的阻断点;pyinstaller,没有复用pack.py中的 CustomTkinter 资源注入与--windowed配置,产物可能与本地验证包不一致;建议改造
python -m unittest discover tests -v,构建必须依赖测试通过。pack.py的参数提取成共享构建配置。tag_name: ${{ steps.get_version.outputs.version }},校验版本格式与现有 tag 冲突。验收