释放电子桌面应用程序可以通过电子锻造和github动作自动化。这篇文章涵盖了自动化的主要步骤。
先决条件
- 自举电子应用
- GitHub个人访问令牌(带有
repo
和write:packages
权限)作为GitHub Action Secret(GH_TOKEN
)
设置
运行以下命令以配置应用程序版本的电子伪造。
npm i @electron-forge/cli @electron-forge/publisher-github -D
npx electron-forge import
最后一个命令应安装必要的依赖项并添加配置文件。
使用包含应用程序名称的“ bin”字段更新forge.config.js
文件,并确保GitHub Publisher指向正确的存储库。
// forge.config.js
module.exports = {
packagerConfig: {
asar: true
},
rebuildConfig: {},
makers: [
{
name: '@electron-forge/maker-squirrel',
config: {
bin: 'Electron Starter'
}
},
{
name: '@electron-forge/maker-zip',
config: {
bin: 'Electron Starter'
},
platforms: ['darwin']
},
{
name: '@electron-forge/maker-deb',
config: {
bin: 'Electron Starter'
}
},
{
name: '@electron-forge/maker-rpm',
config: {
bin: 'Electron Starter'
}
}
],
plugins: [
{
name: '@electron-forge/plugin-auto-unpack-natives',
config: {}
}
],
publishers: [
{
name: '@electron-forge/publisher-github',
config: {
repository: {
owner: 'delimitertech',
name: 'electron-starter'
},
prerelease: true
}
}
]
};
在发布应用程序之前升级包版本。用于发布的NPM脚本应使用Publish Command。将“ productName”设置为应用程序启动时显示的应用程序名称。
// package.json
{
// ...
"version": "1.0.1",
"scripts": {
// ...
"publish": "electron-forge publish"
},
"productName": "Electron Starter"
}
github操作工作流程用于手动释放Linux,Windows和MacOS的应用程序应包含以下配置。
# .github/workflows/release.yml
name: Release app
on:
workflow_dispatch:
jobs:
build:
strategy:
matrix:
os:
[
{ name: 'linux', image: 'ubuntu-latest' },
{ name: 'windows', image: 'windows-latest' },
{ name: 'macos', image: 'macos-latest' },
]
runs-on: ${{ matrix.os.image }}
steps:
- name: Github checkout
uses: actions/checkout@v3
- name: Use Node.js
uses: actions/setup-node@v3
with:
node-version: 20
- run: npm ci
- name: Publish app
env:
GITHUB_TOKEN: ${{ secrets.GH_TOKEN }}
run: npm run publish
样板
这是我用于开发的样板的link。它包含上面提到的示例以及更多细节。