在这个 Electron 开发实践中,咱们都应该熟悉了 Electron 的开发流程和要点。接下来,最重要的一步是将你的代码打包成软件包,以便用户能够方便地运用它。手动打包在这个过程中可能会变得十分繁琐,咱们能够借助 GitHub Actions 来主动完结这个使命。

首要,让咱们来看一下默许的打包指令。

// package.json
{
  "scripts": {
    "build": "vue-tsc && vite build && electron-builder"
  }
  // ...
}

package.json文件中的 build 指令,先运用 vite build 指令来进行 web 网页项目的打包,之后运用 electron-builder 指令进行 APP 打包。electron-builder 默许情况下,会依据你的操作体系和项目装备主动打包输出对应的安装包格式,如 Mac 体系默许打包成.dmg安装包。

打包装备文件能够检查文件electron-builder.json5

{
  // Electron使用程序的唯一标识符,上架使用商店必须
  appId: 'YourAppID',
  productName: 'GemChat', // APP 名称
  mac: {
    // Mac 打包装备
  },
  win: {
    // Windows 打包装备
  },
  linux: {
    // Linux 打包装备
  }
}

在装备文件中提供了不同渠道的打包装备,假如咱们需要打包其他体系的安装包,只需要在履行electron-builder指令时增加对应的渠道参数,例如--mac表明打包 Mac 体系的安装包,--win表明打包 Windows 体系的安装包,--linux表明打包 Linux 体系的安装包。

通常,咱们将代码保存在 GitHub 库房中,而 APP 的安装包则会上传和发布在 GitHub Releases。但是经过手动打包和上传的方法十分繁琐和低效,不符合程序员寻求效率的准则。

为了进步打包的效率,咱们能够运用 GitHub Actions 主动化的方法来进行打包和发布。首要在 github/workflows 目录创立文件 release.yml,下面是对这个流程文件要害要点的解析。

name: Release
on:
  push:
    tags:
      - 'v*' # 在推送的标签以"v"最初时履行
jobs:
  build:
    runs-on: ${{ matrix.os }} # 运用矩阵战略来确定操作体系
    strategy:
      matrix: # 这个界说会启用2个体系进行打包
        os: [macos-latest, windows-latest]
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Setup Node.js
        uses: actions/setup-node@v3
        with:
          node-version: 18
      - name: Install dependencies
        run: npm install
      - name: Build Electron package
        # 不同体系会对应打包出不同类型安装包,打包完结会主动生成 Releases 草稿
        run: npm run build
        env:
          GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}
  release:
    needs: build
    runs-on: ubuntu-latest
    steps:
      - name: Checkout code
        uses: actions/checkout@v3
      - name: Publish release
        if: ${{ startsWith(github.ref, 'refs/tags/v') }}
        # 修改 Releases 草稿并发布
        run: gh release edit ${{ github.ref_name }} --draft=false
        env:
          GH_TOKEN: ${{ secrets.RELEASE_TOKEN }}

作业流程图如下:

Electron开发实践五,GitHub打包主动发布

还有一个要害点是GH_TOKEN,你是否有疑问这个环境变量是哪里设置的?下面介绍一下怎么设置。下面是在用户 Setting 模块设置 token 的流程。

Electron开发实践五,GitHub打包主动发布

按照上面的图设置 token,最终仿制新建的 token。然后回到项目库房,按照如下流程设置秘钥参数。

Electron开发实践五,GitHub打包主动发布
Electron开发实践五,GitHub打包主动发布

设置完结就能够经过secrets.RELEASE_TOKEN进行调用了,RELEASE_TOKEN是上图中的Name

最终,把流程文件提交到库房,然后创立tag并推送就能够主动履行打包啦。

源码:wenyikun/chat-electron-app: A ChatGPT chat application developed using Electron. (github.com)