GitHub Actions打包Electron

概述

Github Actions允许用户在 Github 上执行一个脚本来完成各种操作。Github Actions脚本可用于编译、打包、自动发布等各种操作。Github提供了一个 Actions 市场,其中提供了各种用途的脚本模板;例如:https://github.com/marketplace?query=electron

GitHub Actions 的配置文件叫做 workflow 文件,存放在代码仓库的.github/workflows目录。

workflow 文件采用 YAML 格式,文件名可以任意取,但是后缀名统一为.yml,比如foo.yml。一个库可以有多个 workflow 文件。GitHub 只要发现.github/workflows目录里面有.yml文件,就会自动运行该文件。

Github Actions工作流基础

https://www.sidoc.cn/doc/1163.html

使用Github Actions自动打包基于各平台的安装包

……


# 当前工作流的名称
name: Build/release

# 当前工作流触发条件:此处是每次推送代码时触发
on: push

# 定义工作流中要执行的作业
jobs:
  release:
    # 指定当前作业将运行在哪些操作系统上;此处使用矩阵(matrix)策略根据不同的操作系统运行多次作业
    runs-on: ${{ matrix.os }}

    strategy:
      matrix:
        # 指定要运行的操作系统,当前作业将在以下3个操作系统上分别运行:macos-latest(最新的 macOS 版本)、ubuntu-latest(最新的 Ubuntu 版本)和 windows-latest(最新的 Windows 版本);
        # 矩阵(matrix)策略将为每个指定的操作系统创建一个独立的作业实例;
        os: [macos-latest, ubuntu-latest, windows-latest]
        arch: [x64, arm64]  # 针对不同的架构

    steps:
      # 使用 actions/checkout 插件检出仓库中的代码
      - name: Check out Git repository
        uses: actions/checkout@v4

      # 安装指定版本的 Node.js
      - name: Install Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      # 安装项目依赖
      - run: npm install

      # 打包编译
      - run: npm run make

      # 上传 out/make/ 文件夹至 Artifacts 
      # Artifact是Github提供的临时存储文件的地方,是Github Actions的一部分;
      # 文件在Artifact中可以保存90天,单文件大小不能超过2GB,总大小不能超过5GB,否则 GitHub 将自动删除最早的文件以腾出空间;
      # Artifact将工作流生成的文件称为工件;即,Artifact是专门用来保存工件的;
      # 相同名称的文件保存到Artifact中时会发生冲突,overwrite:true表示覆盖同名文件;
      - name: Upload Build Artifacts 
        uses: actions/upload-artifact@v4
        with: 
           # 保存到 Artifact 的文件名称
           name: electron-app-${{ matrix.os }}-${{ matrix.version }}
           # 要保存到 Artifact 中的文件或目录
           path: out/make/
           # 覆盖同名文件
           overwrite: true


Artifacts文件的位置:



遇到的坑:

官方推荐使用 electron-forge 打包,常用命令如下:

## 启动项目
electron-forge start

## 将项目打包成源码
electron-forge package

## 将项目打包成可执行文件(此命令内部会先执行 electron-forge package 命令 )
electron-forge make

打包完成后,electron-forge会在项目根目录创建一个 /out 文件夹,其中 /out/make 是打包编译后的可执行文件,/out/<项目名称> 是打包后的项目源码



必须在 package.json 中指定 main 入口文件,同时 descriptionlicenseauthor 都是必填字段,否则打包无法通过

{
  "name": "vue-project",
  "version": "0.0.0",
  "private": true,
  "type": "module",
  "main": "src/main.ts",
  "description": "Hello World!",
  "author": "Jane Doe",
  "license": "MIT"
}


Linux平台必须安装如下工具:

sudo apt install rpm
sudo apt install dpkg
sudo apt install fakeroot







举报

© 著作权归作者所有


0