Add Windows release CI
Some checks failed
Build Windows Release / Windows x64 Release (MinGW + Qt + OpenCV) (push) Has been cancelled

This commit is contained in:
luochen570
2026-05-31 12:58:55 +08:00
parent 804a5db77d
commit a5385e2c4b
3 changed files with 249 additions and 0 deletions

View File

@@ -234,6 +234,44 @@ C:\Qt\6.6.0\msvc2019_64
通常是 Qt、OpenCV、编译器不匹配。MSVC 工程必须使用 MSVC 版 Qt 和 MSVC 版 OpenCVMinGW 工程必须使用 MinGW 版 Qt 和 MinGW 版 OpenCV。
## CI 自动构建和发布
仓库提供了 Gitea Actions 工作流:
```text
.gitea/workflows/build-windows-release.yml
```
触发方式:
- 推送到 `main` 分支。
- 推送 `v*` 标签,例如 `v1.0.0`
- 在 Gitea 页面手动运行 `workflow_dispatch`
CI 会在 Fedora 容器中安装 MinGW-w64、Qt6、OpenCV交叉编译 Windows x64 程序,然后打包:
```text
QtOpenCVImageTool-windows-x64-<version>.zip
QtOpenCVImageTool-windows-x64-<version>.zip.sha256
```
最后通过 Gitea API 上传到仓库 Release。为了允许上传 Release请在仓库的 Actions Secrets 中配置:
```text
RELEASE_TOKEN=<具有仓库 release 写权限的 token>
```
如果 Gitea 已经给 Actions 提供可写的 `GITHUB_TOKEN`,也可以不配置 `RELEASE_TOKEN`
发布版本建议使用 tag
```bash
git tag v1.0.0
git push origin v1.0.0
```
这样 Release 名称和包名会使用 `v1.0.0`。如果只是推送到 `main`CI 会创建预发布版本,名称类似 `build-提交哈希`
## WSL 中交叉编译 Windows 程序
WSL 里不能使用 Linux 版 Qt/OpenCV 直接生成 Windows exe必须准备 Windows 目标库。推荐使用 MinGW-w64 作为交叉编译器,并准备同为 MinGW-w64 目标的 Qt 和 OpenCV。