action-electron-builder配置详解:从基础参数到高级功能的全面指南
【免费下载链接】action-electron-builder:electron: GitHub Action for building and releasing Electron apps项目地址: https://gitcode.com/gh_mirrors/ac/action-electron-builder
action-electron-builder是一款强大的GitHub Action工具,专为Electron应用的自动化构建和发布设计。它深度集成electron-builder,帮助开发者在GitHub CI/CD环境中轻松实现跨平台应用打包与分发,无需直接操作macOS、Windows和Linux系统。
快速上手:基础配置步骤
环境准备要求
在使用action-electron-builder前,需完成两项关键准备工作:
- 确保项目已安装并配置electron-builder(v22+版本),具体可参考electron-builder官方文档
- 如需代码编译(如TypeScript转JavaScript),需在package.json中定义build脚本,但请勿在该脚本中执行electron-builder,构建过程将由Action自动处理
基础工作流示例
创建.github/workflows/build.yml文件,添加以下基础配置:
name: Build/release on: push jobs: release: runs-on: ${{ matrix.os }} strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] steps: - uses: actions/checkout@v1 - uses: actions/setup-node@v1 with: node-version: 10 - uses: samuelmeuli/action-electron-builder@v1 with: github_token: ${{ secrets.github_token }} release: ${{ startsWith(github.ref, 'refs/tags/v') }}这个配置将在每次代码推送时触发构建,并在检测到v*.*.*格式的标签时自动创建发布版本。
核心参数配置指南
必选基础参数
| 参数名 | 描述 | 示例值 |
|---|---|---|
| github_token | GitHub认证令牌,自动提供无需额外配置 | ${{ secrets.github_token }} |
| release | 是否在构建成功后发布应用 | ${{ startsWith(github.ref, 'refs/tags/v') }} |
常用可选参数
在action.yml中定义了丰富的配置选项,以下是开发中最常用的几个:
package_root:NPM/Yarn命令执行目录(默认:".")
with: package_root: "./app"build_script_name:构建前执行的NPM脚本名称(默认:"build")
with: build_script_name: "compile"skip_build:是否跳过构建脚本执行(默认:false)
with: skip_build: trueargs:传递给electron-builder的额外参数
with: args: "--linux deb --win nsis"
高级功能实现
Vue项目集成方案
对于Vue.js Electron项目,可通过use_vue_cli参数启用Vue CLI插件模式:
with: use_vue_cli: true此配置会使用vue-cli-service electron:build命令替代直接调用electron-builder,需确保项目已安装vue-cli-plugin-electron-builder。
代码签名配置
macOS签名
- 导出代码签名证书为p12文件并设置密码
- 使用命令
base64 -i certs.p12 -o encoded.txt编码证书 - 在GitHub项目设置中添加
mac_certs和mac_certs_password密钥 - 在工作流中配置:
with: mac_certs: ${{ secrets.mac_certs }} mac_certs_password: ${{ secrets.mac_certs_password }}Windows签名
类似macOS配置,使用windows_certs和windows_certs_password参数即可实现Windows代码签名。
应用公证配置(macOS)
实现macOS应用自动公证需以下步骤:
- 在App Store Connect获取API密钥、Key ID和Issuer ID
- 在GitHub添加
api_key、api_key_id和api_key_issuer_id密钥 - 在工作流中添加准备步骤:
- name: Prepare for app notarization if: startsWith(matrix.os, 'macos') run: | mkdir -p ~/private_keys/ echo '${{ secrets.api_key }}' > ~/private_keys/AuthKey_${{ secrets.api_key_id }}.p8- 传递环境变量给action-electron-builder:
env: API_KEY_ID: ${{ secrets.api_key_id }} API_KEY_ISSUER_ID: ${{ secrets.api_key_issuer_id }}Snapcraft发布配置
对于Linux平台,如需发布Snap包,需添加Snapcraft安装步骤:
- name: Install Snapcraft uses: samuelmeuli/action-snapcraft@v1 if: startsWith(matrix.os, 'ubuntu') with: snapcraft_token: ${{ secrets.snapcraft_token }}实用工作流技巧
条件发布策略
通过GitHub Actions表达式实现更精细的发布控制:
release: ${{ github.event_name == 'release' && github.event.action == 'published' }}构建重试机制
使用max_attempts参数设置构建失败自动重试:
with: max_attempts: 3多平台构建优化
通过矩阵策略和条件步骤优化构建效率:
strategy: matrix: os: [macos-latest, ubuntu-latest, windows-latest] include: - os: ubuntu-latest snap: true steps: - name: Install Snapcraft if: matrix.snap uses: samuelmeuli/action-snapcraft@v1项目结构与文件说明
action-electron-builder项目包含以下核心文件:
- action.yml:定义Action输入参数和执行逻辑
- index.js:核心执行脚本,处理环境变量、构建命令和错误处理
- package.json:项目依赖和脚本定义
测试目录中提供了多种项目结构示例:
- test/app-in-root:应用代码在根目录的项目结构
- test/app-in-subdirectory:应用代码在子目录的项目结构
- test/vue-app:Vue.js Electron项目示例
常见问题解决
构建脚本冲突
若package.json中的build脚本与Action冲突,可通过build_script_name参数指定自定义构建脚本名称:
with: build_script_name: "electron:compile"证书导入失败
macOS代码签名时如遇证书问题,建议:
- 确保证书包含所有必要的中间证书
- 验证base64编码过程未引入额外字符
- 检查密钥密码是否正确
发布版本不创建
若标签推送后未创建发布,检查:
- 标签格式是否为v*..(如v1.2.3)
- 工作流文件中release条件是否正确
- GitHub Actions日志中是否有错误信息
通过合理配置action-electron-builder,开发者可以实现Electron应用的全自动化构建、签名和发布流程,大幅提升开发效率。无论是小型个人项目还是大型企业应用,该工具都能提供稳定可靠的CI/CD支持。
【免费下载链接】action-electron-builder:electron: GitHub Action for building and releasing Electron apps项目地址: https://gitcode.com/gh_mirrors/ac/action-electron-builder
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考