Skip to content

Commit 3874ab3

Browse files
committed
🐳 chore: 更新工作流
1 parent fc297cb commit 3874ab3

1 file changed

Lines changed: 110 additions & 45 deletions

File tree

.github/workflows/release.yml

Lines changed: 110 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -18,28 +18,45 @@ jobs:
1818
matrix:
1919
arch: [x64, arm64]
2020
steps:
21-
- uses: actions/checkout@v4
22-
21+
# 检出 Git 仓库
22+
- name: Check out git repository
23+
uses: actions/checkout@v5
24+
# 安装 Node.js
2325
- name: Setup Node.js
24-
uses: actions/setup-node@v4
26+
uses: actions/setup-node@v6
2527
with:
2628
node-version: ${{ env.NODE_VERSION }}
27-
29+
# 安装 pnpm
2830
- name: Install pnpm
2931
run: npm install -g pnpm
30-
32+
# 复制环境变量文件
33+
- name: Copy .env.example
34+
run: |
35+
if (-not (Test-Path .env)) {
36+
Copy-Item .env.example .env
37+
} else {
38+
Write-Host ".env file already exists. Skipping the copy step."
39+
}
40+
# 安装项目依赖
3141
- name: Install dependencies
3242
run: pnpm install
33-
43+
# 清理旧的构建产物
44+
- name: Clean dist folder
45+
run: |
46+
if (Test-Path dist) {
47+
Remove-Item -Recurse -Force dist
48+
}
49+
# 构建 Electron App
3450
- name: Build Electron App (Windows)
35-
run: pnpm run build:win -- --${{ matrix.arch }}
51+
run: pnpm run build:win -- --${{ matrix.arch }} || true
3652
env:
37-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
38-
53+
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
54+
# 上传构建产物
3955
- name: Upload artifacts
4056
uses: actions/upload-artifact@v4
4157
with:
42-
name: SPlayer-Win-${{ matrix.arch }}
58+
name: SPlayer-Win-${{ matrix.arch }
59+
if-no-files-found: ignore
4360
path: |
4461
dist/*.exe
4562
dist/*.exe.blockmap
@@ -54,28 +71,43 @@ jobs:
5471
matrix:
5572
arch: [x64, arm64]
5673
steps:
57-
- uses: actions/checkout@v4
58-
74+
# 检出 Git 仓库
75+
- name: Check out git repository
76+
uses: actions/checkout@v5
77+
# 安装 Node.js
5978
- name: Setup Node.js
60-
uses: actions/setup-node@v4
79+
uses: actions/setup-node@v6
6180
with:
6281
node-version: ${{ env.NODE_VERSION }}
63-
82+
# 安装 pnpm
6483
- name: Install pnpm
6584
run: npm install -g pnpm
66-
85+
# 复制环境变量文件
86+
- name: Copy .env.example
87+
run: |
88+
if [ ! -f .env ]; then
89+
cp .env.example .env
90+
else
91+
echo ".env file already exists. Skipping the copy step."
92+
fi
93+
# 安装项目依赖
6794
- name: Install dependencies
6895
run: pnpm install
69-
96+
# 清理旧的构建产物
97+
- name: Clean dist folder
98+
run: rm -rf dist
99+
# 构建 Electron App
70100
- name: Build Electron App (macOS)
71-
run: pnpm run build:mac -- --${{ matrix.arch }}
101+
run: pnpm run build:mac -- --${{ matrix.arch }} || true
102+
shell: bash
72103
env:
73-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
74-
104+
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
105+
# 上传构建产物
75106
- name: Upload artifacts
76107
uses: actions/upload-artifact@v4
77108
with:
78109
name: SPlayer-macOS-${{ matrix.arch }}
110+
if-no-files-found: ignore
79111
path: |
80112
dist/*.dmg
81113
dist/*.zip
@@ -89,31 +121,62 @@ jobs:
89121
matrix:
90122
arch: [x64, arm64]
91123
steps:
92-
- uses: actions/checkout@v4
93-
124+
# 检出 Git 仓库
125+
- name: Check out git repository
126+
uses: actions/checkout@v5
127+
# 安装 Node.js
94128
- name: Setup Node.js
95-
uses: actions/setup-node@v4
129+
uses: actions/setup-node@v6
96130
with:
97131
node-version: ${{ env.NODE_VERSION }}
98-
132+
# 安装 pnpm
99133
- name: Install pnpm
100134
run: npm install -g pnpm
101-
102-
- name: Install build dependencies
135+
# 更新 Ubuntu 软件源
136+
- name: Ubuntu Update with sudo
137+
run: sudo apt-get update
138+
# 安装依赖
139+
- name: Install RPM & Pacman
103140
run: |
104-
sudo apt-get update
105-
sudo apt-get install --no-install-recommends -y rpm libarchive-tools libopenjp2-tools
106-
141+
sudo apt-get install --no-install-recommends -y rpm &&
142+
sudo apt-get install --no-install-recommends -y libarchive-tools &&
143+
sudo apt-get install --no-install-recommends -y libopenjp2-tools
144+
# 安装 Snapcraft
145+
- name: Install Snapcraft
146+
uses: samuelmeuli/action-snapcraft@v2
147+
# 复制环境变量文件
148+
- name: Copy .env.example
149+
run: |
150+
if [ ! -f .env ]; then
151+
cp .env.example .env
152+
else
153+
echo ".env file already exists. Skipping the copy step."
154+
fi
155+
# 安装项目依赖
156+
- name: Install Dependencies
157+
run: pnpm install
158+
# 清理旧的构建产物
159+
- name: Clean dist folder
160+
run: rm -rf dist
161+
# 构建 Electron App
107162
- name: Build Electron App (Linux)
108-
run: pnpm run build:linux -- --${{ matrix.arch }}
163+
run: pnpm run build:linux -- --${{ matrix.arch }} || true
164+
shell: bash
109165
env:
110-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
111-
SNAPCRAFT_STORE_CREDENTIALS: ${{ secrets.SNAPCRAFT_TOKEN }}
112-
166+
GITHUB_TOKEN: ${{ secrets.ACCESS_TOKEN }}
167+
# 上传 Snap 包到 Snapcraft 商店
168+
- name: Publish Snap to Snap Store
169+
run: |
170+
if [ -f dist/*.snap ]; then
171+
snapcraft upload dist/*.snap --release stable || echo "Snap upload failed or not configured"
172+
fi
173+
continue-on-error: true
174+
# 上传构建产物
113175
- name: Upload artifacts
114176
uses: actions/upload-artifact@v4
115177
with:
116178
name: SPlayer-Linux-${{ matrix.arch }}
179+
if-no-files-found: ignore
117180
path: |
118181
dist/*.AppImage
119182
dist/*.deb
@@ -131,22 +194,24 @@ jobs:
131194
- build-macos
132195
- build-linux
133196
if: startsWith(github.ref, 'refs/tags/v')
197+
# 需要写入权限才能创建 Release 和上传产物
198+
permissions:
199+
contents: write
134200
steps:
135-
- uses: actions/checkout@v4
136-
137-
# 下载各平台构建产物
201+
# 将所有产物下载到 artifacts 文件夹
138202
- name: Download all artifacts
139203
uses: actions/download-artifact@v4
140204
with:
141205
path: artifacts
142-
143-
- name: List downloaded artifacts
206+
# 列出下载的产物(用于调试)
207+
- name: List downloaded artifacts (for debugging)
144208
run: ls -R artifacts
145-
146-
# 通过 electron-builder 上传 Release 和 latest.yml
147-
- name: Publish via electron-builder
148-
run: |
149-
pnpm install
150-
pnpm run build:publish
151-
env:
152-
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
209+
# 创建 GitHub Release 并上传所有产物
210+
- name: Create GitHub Release and Upload Assets
211+
uses: softprops/action-gh-release@v2
212+
with:
213+
# 生成发布说明
214+
generate_release_notes: true
215+
# 全部上传
216+
files: |
217+
artifacts/**/*

0 commit comments

Comments
 (0)