构建与工作流
本地构建
使用 python deploy.py 和扩展构建命令在本地验证改动。
本地构建用于在提交 PR 前验证桌面端能被 Nuitka 打包,Feature Pack 能被复制到输出目录,浏览器扩展能通过类型检查和构建。
桌面端构建
安装 Python 依赖。
pip install --timeout=300 -r requirements.txt在仓库根目录运行构建脚本。
python deploy.py检查输出目录。
| 平台 | 主要输出 |
|---|---|
| Windows / Linux | dist/Ghost-Downloader-3.dist |
| macOS | dist/Ghost-Downloader-3.app |
deploy.py 做了什么
| 阶段 | 说明 |
|---|---|
| 生成 Nuitka 参数 | 根据 Windows、macOS、Linux 选择图标、Qt 插件和平台参数。 |
| 编译入口 | 以 Ghost-Downloader-3.py 作为桌面端入口。 |
| 包含依赖 | 额外包含 urllib3、qrcode、libtorrent、aioftp 等包。 |
| 复制 Feature Pack | 将带 manifest.toml 的功能包复制到构建产物。 |
| 排除黑名单 | jack_yao 当前在 FEATURE_PACK_BLACKLIST 中。 |
本地构建不是完整发布
python deploy.py 只负责生成桌面端构建产物和复制 Feature Pack。安装器、签名、DMG、deb、AppImage 等平台产物由 GitHub Actions 中的后续步骤完成。
浏览器扩展构建
cd browser_extension\app
npm install
npm run typecheck
npm run build修改扩展桥接协议时,需要同时检查 app/services/browser_service.py 和 browser_extension/app/src/background/desktop-bridge.ts。
