Electron App跨平台发布:GitHub Action自动化构建Windows/Mac/Linux
Electron App作为一款集成React 19、TypeScript 5、Tailwind 4等技术的跨平台应用模板,提供了通过GitHub Action实现Windows、Mac和Linux系统自动化构建的完整解决方案。本文将详细介绍如何利用这一强大工具链,实现Electron应用的一键式跨平台发布,让开发者专注于功能开发而非繁琐的构建流程。
🚀 自动化发布的核心优势
跨平台应用开发中,构建和发布流程往往成为效率瓶颈。Electron App通过GitHub Action实现的自动化构建系统,带来三大核心优势:
- 多平台同步发布:一次配置即可生成Windows(.exe、zip)、Mac(.dmg、.zip)和Linux(AppImage、deb、rpm等)全平台安装包
- 零手动操作:从版本号管理到发布包生成,全程自动化完成
- 版本追溯:每个发布版本都与GitHub提交记录关联,便于问题定位和版本回滚
图:Electron App模板运行界面,展示了跨平台应用的基础UI框架
⚙️ 准备工作:环境配置与权限设置
在开始自动化构建前,需要完成两项关键配置:
1. 仓库权限设置
确保GitHub仓库具备必要的工作流权限:
- 进入仓库的
/settings/actions页面 - 在"Actions permissions"部分选择"Allow all actions and reusable workflows"
- 在"Workflow permissions"部分选择"Read and write permissions"
- 保存设置
2. 依赖安装
克隆项目仓库并安装依赖:
git clone https://gitcode.com/gh_mirrors/el/electron-app
cd electron-app/template
pnpm install
项目的核心构建依赖在template/package.json中定义,包括electron-builder(版本26.0.12)和electron-vite(版本4.0.1)等关键工具。
📦 一键发布流程:从代码到多平台安装包
Electron App提供了简化的发布命令,只需两步即可触发全平台自动化构建:
1. 执行发布命令
在项目根目录运行:
git pull
pnpm make:release
2. 版本号输入
命令执行后,系统会提示输入新版本号(遵循语义化版本规范)。输入完成后,将自动触发以下流程:
- 更新template/package.json中的版本号
- 生成提交记录和版本标签
- 触发GitHub Action工作流
- 自动打开发布页面和Actions页面
🔍 GitHub Action工作流解析
自动化构建的核心逻辑在项目的GitHub Action配置中实现。工作流完成以下关键步骤:
- 环境准备:设置Windows、MacOS和Ubuntu构建环境
- 依赖安装:安装Node.js、pnpm及项目依赖
- 代码编译:通过
pnpm prebuild命令编译应用代码 - 多平台构建:使用
electron-builder生成各平台安装包 - 发布创建:在GitHub上创建包含所有安装包的Draft Release
构建完成后,可在GitHub仓库的Releases页面找到生成的安装包,包括:
- Windows:可移植zip包和.exe安装程序
- Mac:.app zip包和.dmg安装程序
- Linux:AppImage、freebsd、pacman、rpm和deb包
📝 自定义发布配置
如需调整发布参数,可修改以下关键文件:
- 构建配置:template/electron-builder.ts
- 发布脚本:template/src/lib/electron-app/release/modules/release.ts
- 版本管理:template/src/lib/electron-app/release/utils/validations.ts
🔐 代码签名与自动更新(进阶配置)
对于需要代码签名和自动更新功能的应用,可参考官方文档进行配置:
- 代码签名:electron-builder文档
- 自动更新:项目内置的更新机制实现于template/src/lib/electron-app/factories/app/setup.ts
🎯 总结
Electron App通过GitHub Action实现的跨平台自动化发布流程,极大简化了多系统安装包的构建过程。只需简单配置和两条命令,即可完成从代码到全平台安装包的转换,让开发者将更多精力投入到应用功能的优化上。无论是个人项目还是企业级应用,这一自动化方案都能显著提升发布效率,确保各平台版本的一致性和及时性。
更多详细信息可查阅项目文档:
- 发布流程:docs/RELEASING.md
- 项目结构:docs/STRUCTURE.md
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



