1- name : Build/release Electron app
1+ name : Build and Release
22
3+ # 当推送 tag 时触发(如 v1.0.0, v1.2.3)
34on :
45 push :
56 tags :
6- - v*.*.*
7+ - ' v* '
78
89jobs :
9- release :
10- runs-on : ${{ matrix.os }}
11-
12- strategy :
13- matrix :
14- os : [ubuntu-latest, macos-latest, windows-latest]
15-
10+ build :
11+ runs-on : windows-latest
12+
1613 steps :
17- - name : Check out Git repository
18- uses : actions/checkout@v3
19-
20- - name : Install Node.js
21- uses : actions/setup-node@v3
14+ # 1. 检出代码
15+ - name : Checkout code
16+ uses : actions/checkout@v4
17+
18+ # 2. 安装 Node.js
19+ - name : Setup Node.js
20+ uses : actions/setup-node@v4
2221 with :
23- node-version : 16
24-
25- - name : Install Dependencies
26- run : npm install
27-
28- - name : build-linux
29- if : matrix.os == 'ubuntu-latest'
30- run : npm run build:linux
31-
32- - name : build-mac
33- if : matrix.os == 'macos-latest'
34- run : npm run build:mac
35-
36- - name : build-win
37- if : matrix.os == 'windows-latest'
38- run : npm run build:win
22+ node-version : ' 20'
23+ cache : ' npm'
24+
25+ # 3. 安装依赖
26+ - name : Install dependencies
27+ run : npm ci
28+
29+ # 4. 打包 Electron 应用
30+ - name : Build Electron app
31+ run : npm run dist:win
32+ env :
33+ GH_TOKEN : ${{ secrets.GITHUB_TOKEN }}
34+
35+ # 5. 上传构建产物
36+ - name : Upload artifacts
37+ uses : actions/upload-artifact@v4
38+ with :
39+ name : release-files
40+ path : |
41+ release/*.exe
42+ release/*.zip
43+ retention-days : 5
3944
40- - name : release
45+ release :
46+ needs : build
47+ runs-on : ubuntu-latest
48+ permissions :
49+ contents : write
50+
51+ steps :
52+ # 1. 下载构建产物
53+ - name : Download artifacts
54+ uses : actions/download-artifact@v4
55+ with :
56+ name : release-files
57+ path : ./release
58+
59+ # 2. 创建 Release 并上传文件
60+ - name : Create Release
4161 uses : softprops/action-gh-release@v1
4262 with :
43- draft : true
4463 files : |
45- dist/*.exe
46- dist/*.zip
47- dist/*.dmg
48- dist/*.AppImage
49- dist/*.snap
50- dist/*.deb
51- dist/*.rpm
52- dist/*.tar.gz
53- dist/*.yml
54- dist/*.blockmap
64+ release/*.exe
65+ release/*.zip
66+ draft : false
67+ prerelease : false
68+ generate_release_notes : true
5569 env :
56- GITHUB_TOKEN : ${{ secrets.ACCESS_TOKEN }}
70+ GITHUB_TOKEN : ${{ secrets.GITHUB_TOKEN }}
0 commit comments