Electron 是一个开源的跨平台框架,它内部集成了 Node.js 环境和浏览器环境,只需要一套代码,你的应用就可以轻松的运行在Windows,macOS,Linux三大操作系统上。让开发者可以使用 Web 技术来绘制客户端的 UI,同时拥有不错的 I/O 能力。
我们团队的产品diygw-electron就使用了 Eletron 作为产品的基座,在发布时,需要针对 Windows、Mac 两个平台进行打包和构建。
过去开发Electron应用的时候想要编译出三大系统的应用程序安装包就有点麻烦了,你需要分别在三个操作系统上执行编译命令才能编译出对应系统的安装包。对于一些小团队而言,可能没有MAC电脑,这时就比较麻烦了。
Github Actions是Github推出的持续集成/交付服务。
因此我们希望用自动化的方式进行构建,由于我们的项目源码放在 Github 上,我们很自然会选用 Github Action 来进行这个工作。
第一次踩坑:发出的问题找不到gh_token
解决方法:action里配置环境变量
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
第二次踩坑每更新一个版本自动发布一个版本
我们定义的是通过 git tag 来触发这个自动化工作流。如果需要,也可以定义成根据某个分支提交的事件来触发。
on:
push:
tags:
- "*"
我们每发一个版本核心代码
Create TAG
git tag v1.0.1
PUSH GIT TAG
git push origin v1.0.1
DELETE REMOTE TAG
git push origin :refs/tags/v1.0.1
如果我们要触发自动构建修改上面的版本号,然后进行发布
name: build
on:
push:
tags:
- "*"
jobs:
release:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [macos-latest, windows-latest]
# 步骤
steps:
# 使用预制action:拉取最新的代码
- uses: actions/checkout@v3
# 步骤一的名称:
- name: Install and Build
# 该步骤运行的终端命令,进入仓库的目录,安装依赖,运行编译命令
run: yarn && yarn release
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
很感谢 Github Action 免费提供了这么一个运行环境。
构建后在release里可以找到对应的版本,然后进行安装即可
项目开源地址:
https://github.com/html580/diygw-electron
发布的action在
.gitub/wordflows/build.yml
如果你对于 diygw-electron 有任何疑问或者建议,都可以去 Github 或者来这里找我,提个Issue,我看到了都会及时回复的。