MoGallery-GitHub Actions跨平台打包
614 字
3 分钟
MoGallery-GitHub Actions跨平台打包
当前发布产物
MoGallery Desktop 使用 Wails 2.12.0。Release workflow 在各平台的原生 GitHub runner 上构建,当前每个版本共生成 23 个桌面端文件。
| 平台 | 架构 | 格式 |
|---|---|---|
| Windows | AMD64、ARM64、x86 | Portable .exe、NSIS Setup .exe |
| macOS | AMD64、ARM64、Universal | .zip、.dmg、.pkg |
| Linux | AMD64、ARM64 | .tar.gz、.deb、.rpm、.AppImage |
Windows x86 对应 Wails 目标 windows/386。macOS Universal 同时包含 Intel 和 Apple Silicon 代码。
Workflow 触发与版本限制
Release workflow 在以下情况触发:
- 推送到
master分支; - 在 GitHub Actions 页面手动执行
workflow_dispatch。
版本号从 RELEASE.md 第一条 ## vX.Y.Z 标题读取,并要求以下文件的版本保持一致:
- 根目录
package.json; desktop/frontend/package.json;desktop/wails.json中的info.productVersion;flutter/pubspec.yaml。
如果对应 Git tag 已存在,所有平台构建和 Release 发布都会跳过。例如远端已有 v0.8.0 时,必须升级到 0.8.1 等新版本才能重新触发发布。
Windows 打包
每个 Windows 架构生成两种文件:
mo-gallery-desktop-版本-windows-架构-portable.exemo-gallery-desktop-版本-windows-架构-setup.exePortable 文件无需安装;Setup 文件使用 NSIS 生成,提供正常的安装与卸载流程。
macOS 打包
每个 macOS 架构生成三种文件:
.zip:包含.app应用包;.dmg:带有 Applications 快捷方式的磁盘映像;.pkg:安装到/Applications的安装包。
签名与公证 Secrets
正式对外发布需要在 GitHub 仓库的 Settings -> Secrets and variables -> Actions 中配置:
| Secret | 用途 |
|---|---|
MACOS_CERTIFICATE_P12_BASE64 | Apple Developer .p12 证书的 Base64 内容 |
MACOS_CERTIFICATE_PASSWORD | 导出 .p12 时设置的密码 |
MACOS_SIGNING_IDENTITY | Developer ID Application 签名身份 |
MACOS_INSTALLER_IDENTITY | Developer ID Installer 签名身份 |
APPLE_ID | Apple Developer 账户邮箱 |
APPLE_TEAM_ID | Apple Developer Team ID |
APPLE_APP_SPECIFIC_PASSWORD | Apple ID 的 App 专用密码 |
处理流程如下:
构建 .app -> codesign 签名 -> notarytool 提交 Apple 公证 -> stapler 附加公证凭证 -> 生成 ZIP、DMG 和 PKG未配置 Secrets 时,workflow 仍会生成 ZIP、DMG 和 PKG,但它们未签名、未公证,只适合内部测试。其他 Mac 用户打开时可能遇到 Gatekeeper 的“无法验证开发者”提示。
Linux 打包
Linux 每个架构生成:
.tar.gz:原始可执行文件归档;.deb:Debian、Ubuntu 系发行版安装包;.rpm:Fedora、RHEL 系发行版安装包;.AppImage:单文件分发格式。
Wails Linux 程序仍依赖 GTK3 和 WebKitGTK 4.1。不同发行版安装包名称可能不同,出现运行库缺失时应优先通过系统包管理器安装对应依赖。
发布前检查
- 同步所有项目版本号和
RELEASE.md。 - 确认目标 Git tag 尚不存在。
- 正式发布 macOS 时确认 Apple Secrets 已配置。
- 推送到
master或手动运行 Release workflow。 - 检查各矩阵 job 成功,并确认 GitHub Release 包含全部预期文件。
文章分享
如果这篇文章对你有帮助,欢迎分享给更多人!
MoGallery-GitHub Actions跨平台打包
https://shaio.top/posts/dev/mogallery-github-actions跨平台打包/ 相关文章 智能推荐
1
MoGallery-图片上传链路
Dev mo-gallery图片上传链路
2
MoGallery-给项目添加地图坐标
Dev mo-gallery图片上传链路
3
MoGallery-给项目添加地图坐标
Dev mo-gallery图片上传链路
4
存储整理列表滚动空白:44px 的格子不该拉原图
MO Gallery 后台「存储整理」快速滚动时整片空白的根因与修复——缩略图地址、虚拟化,以及 Web / Desktop 两端各自的取舍
5
MO Gallery 官网部署耗时分析与 Docker 迁移镜像优化
MO Gallery 记录 mo-gallery-offical GitHub Actions 部署耗时过长的排查过程,以及 Prisma 迁移镜像的精简方案。
随机文章 随机推荐