本文档介绍了 drawio-desktop 仓库中用于持续集成和自动化构建的 GitHub Actions 工作流。重点阐述了 GitHub Actions 如何配置和用于构建不同平台的应用程序。有关项目中使用的其他 CI 系统的更多信息,请参阅 Travis CI & AppVeyor。
drawio-desktop 仓库将 GitHub Actions 作为其主要的 CI 系统,以自动化跨多个平台的构建和发布。当推送版本标签时,工作流会被触发,并处理从源代码准备到构建特定平台包的整个过程。
来源:.github/workflows/electron-builder.yml1-78 .github/workflows/electron-builder-win.yml1-77
两个 GitHub Actions 工作流都配置为仅在向仓库推送匹配模式 v*(例如 v1.0.0)的 Git 标签时触发。这确保了仅为官方发布创建构建。
来源:.github/workflows/electron-builder.yml3-6 .github/workflows/electron-builder-win.yml3-6
Linux 和 macOS 构建由 electron-builder.yml 工作流处理,该工作流使用矩阵策略并行在 Ubuntu 和 macOS 上进行构建。
来源:.github/workflows/electron-builder.yml8-78
矩阵配置:工作流在 Ubuntu 和 macOS 上均运行。
环境设置:设置包括签名凭据在内的环境变量。
仓库检出:检出主仓库及其子模块,然后检出 drawio-dev 仓库。
文件准备:从 drawio-dev 复制必要文件,并删除未使用的文件。
构建过程:安装依赖项并运行相应的构建脚本。
Snap 包 (仅限 Ubuntu):构建并发布 Snap 包到 Snap Store 的 Edge 频道。
来源:.github/workflows/electron-builder.yml10-78
Windows 构建由单独的工作流文件 electron-builder-win.yml 处理。此工作流为不同的 Windows 架构构建应用程序的多个变体。
来源:.github/workflows/electron-builder-win.yml8-77
环境设置:配置必要环境变量和密钥。
仓库检出:与 Linux/macOS 工作流类似,检出仓库并准备文件。
多架构构建流程:
首先构建禁用自动更新的 32 位和 ARM64 版本。
然后构建启用自动更新的 64 位版本。
最后构建禁用自动更新的 Windows 应用商店 APPX 包。
来源:.github/workflows/electron-builder-win.yml47-76
工作流利用了多个配置文件和构建脚本来生成最终的软件包。
来源:.github/workflows/electron-builder.yml67-69 .github/workflows/electron-builder-win.yml59-76
工作流使用多个 GitHub 密钥来处理构建过程中的安全方面,例如代码签名和发布。
APPLEID、APPLEIDPASS、APPLE_TEAM_ID:用于 macOS 身份验证。CSC_KEY_PASSWORD、CSC_LINK:用于代码签名证书。SNAP_TOKEN:用于 Snap Store 身份验证。GH_TOKEN:用于访问 drawio-dev 私有仓库。WIN_CSC_LINK、WIN_CSC_KEY_PASSWORD:用于 Windows 代码签名。GH_TOKEN:用于访问 drawio-dev 私有仓库。来源:.github/workflows/electron-builder.yml15-26 .github/workflows/electron-builder-win.yml11-13 .github/workflows/electron-builder-win.yml53-55
GitHub Actions 工作流为不同的平台和架构生成多个构件。
| 平台 | 架构 | 包类型 | 自动更新 |
|---|---|---|---|
| Linux | x64 | AppImage | 已启用 |
| Linux | x64 | DEB | 已启用 |
| Linux | x64 | RPM | 已启用 |
| Linux | x64 | Snap | 已启用 |
| macOS | x64 | DMG | 已启用 |
| Windows | x64 | NSIS/EXE | 已启用 |
| Windows | x32 | NSIS/EXE | 已禁用 |
| Windows | ARM64 | NSIS/EXE | 已禁用 |
| Windows | x64 | APPX | 已禁用 |
来源:.github/workflows/electron-builder.yml58-75 .github/workflows/electron-builder-win.yml52-76
虽然 GitHub Actions 是 drawio-desktop 的主要构建系统,但该仓库也为 Travis CI 和 AppVeyor 等旧系统维护了配置。有关这些系统的更多信息,请参阅 Travis CI & AppVeyor。
有关整体构建和打包过程的信息,请参阅 构建和打包。
刷新此 Wiki
最后索引时间2025 年 4 月 18 日(f1ed8e)