Skip to content

Commit 8f1417b

Browse files
committed
release: v1.0.0 - WebSSH 便携版发布
1 parent f80009d commit 8f1417b

4 files changed

Lines changed: 478 additions & 0 deletions

File tree

.github/workflows/release.yml

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
name: Release WebSSH Portable
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
build-and-release:
10+
runs-on: windows-latest
11+
12+
steps:
13+
- name: 检出代码
14+
uses: actions/checkout@v4
15+
16+
- name: 设置 Node.js
17+
uses: actions/setup-node@v4
18+
with:
19+
node-version: '18'
20+
21+
- name: 安装依赖
22+
run: npm install
23+
24+
- name: 构建前端
25+
run: npm run build
26+
27+
- name: 打包应用 (Electron Builder)
28+
run: npx electron-builder --win --dir
29+
30+
- name: 准备安装包目录
31+
run: |
32+
if exist dist-electron\WebSSH_Installer rmdir /s /q dist-electron\WebSSH_Installer
33+
mkdir dist-electron\WebSSH_Installer
34+
xcopy dist-electron\win-unpacked\* dist-electron\WebSSH_Installer\ /E /I /Y /H /R /Q
35+
36+
- name: 复制安装脚本
37+
run: copy scripts\install.bat dist-electron\WebSSH_Installer\setup.bat /Y
38+
39+
- name: 创建说明文档
40+
run: |
41+
(
42+
echo WebSSH 桌面应用安装包
43+
echo ====================
44+
echo.
45+
echo 安装方法:
46+
echo 1. 双击运行 setup.bat 安装程序
47+
echo 2. 或直接运行 WebSSH.exe 使用
48+
echo.
49+
echo 安装后将创建桌面快捷方式
50+
echo.
51+
echo 版本: 1.0.0
52+
echo 日期: %date%
53+
) > dist-electron\WebSSH_Installer\安装说明.txt
54+
55+
- name: 创建 zip 压缩包
56+
run: powershell -Command "Compress-Archive -Path 'dist-electron\WebSSH_Installer\*' -DestinationPath 'dist-electron\WebSSH_Portable_v1.0.0.zip' -Force"
57+
58+
- name: 获取版本号
59+
id: get_version
60+
run: echo "version=${{ github.ref_name }}" >> $GITHUB_OUTPUT
61+
shell: bash
62+
63+
- name: 创建 GitHub Release
64+
uses: softprops/action-gh-release@v1
65+
with:
66+
files: dist-electron/WebSSH_Portable_v1.0.0.zip
67+
generate_release_notes: true
68+
env:
69+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

docs/Electron桌面应用使用说明.md

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,46 @@
33
## 文件位置
44
打包后的应用程序位于: `dist-electron/win-unpacked/WebSSH.exe`
55

6+
## GitHub Actions 自动发布 ⭐ 推荐用于公开发布
7+
8+
项目已配置 GitHub Actions 自动发布,可以通过推送 tag 自动生成便携版并发布到 GitHub Release。
9+
10+
### 快速发布命令
11+
12+
```bash
13+
# 使用发布脚本(最简单)
14+
release.bat
15+
16+
# 或手动推送 tag
17+
git tag v1.0.0
18+
git push origin v1.0.0
19+
```
20+
21+
### 发布流程
22+
23+
1. **本地测试**: 运行 `release.bat`,输入版本号
24+
2. **自动构建**: 脚本会自动构建前端和打包应用
25+
3. **提交代码**: 自动提交并推送到 feature-local 分支
26+
4. **推送 tag**: 自动创建并推送 tag 到 GitHub
27+
5. **自动发布**: GitHub Actions 自动构建并创建 Release
28+
6. **下载文件**: 用户从 Release 页面下载 zip 文件
29+
30+
### 详细说明
31+
32+
详见: `docs/GitHub Actions自动发布说明.md`
33+
34+
### 仓库信息
35+
36+
- 仓库: https://github.com/dalaolala/webssh
37+
- 分支: feature-local
38+
- 工作流: `.github/workflows/release.yml`
39+
40+
### 输出
41+
42+
```
43+
https://github.com/dalaolala/webssh/releases/download/v1.0.0/WebSSH_Portable_v1.0.0.zip
44+
```
45+
646
## 打包方式
747

848
### 方式一: 单文件模式(默认)
Lines changed: 267 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,267 @@
1+
# GitHub Actions 自动化发布使用说明
2+
3+
## 概述
4+
5+
配置了 GitHub Actions 工作流,可以通过推送 tag 自动发布 WebSSH 便携版。
6+
7+
## 仓库信息
8+
9+
- **仓库地址**: https://github.com/dalaolala/webssh
10+
- **分支**: feature-local
11+
- **工作流**: `.github/workflows/release.yml`
12+
13+
## 配置说明
14+
15+
### 触发条件
16+
17+
工作流在以下情况下自动触发:
18+
19+
1. **推送 tag** 到仓库
20+
```bash
21+
git tag v1.0.0
22+
git push origin v1.0.0
23+
```
24+
25+
2. **Tag 格式**: 必须以 `v` 开头
26+
- ✅ 正确: `v1.0.0`, `v1.0.1`, `v2.0.0`
27+
- ❌ 错误: `1.0.0`, `release-1.0.0`, `v1.0`
28+
29+
### 自动执行步骤
30+
31+
触发后,GitHub Actions 会自动执行以下步骤:
32+
33+
1. ✓ 检出代码
34+
2. ✓ 设置 Node.js 18 环境
35+
3. ✓ 安装依赖 (`npm install`)
36+
4. ✓ 构建前端 (`npm run build`)
37+
5. ✓ 打包应用 (`electron-builder --win --dir`)
38+
6. ✓ 准备安装包目录
39+
7. ✓ 复制安装脚本和文档
40+
8. ✓ 创建 zip 压缩包
41+
9. ✓ 创建 GitHub Release
42+
10. ✓ 上传 zip 文件到 Release
43+
44+
## 使用步骤
45+
46+
### 第一步: 本地测试打包
47+
48+
在推送 tag 之前,建议先本地测试:
49+
50+
```bash
51+
# 1. 确保代码已提交
52+
git status
53+
54+
# 2. 本地测试打包
55+
rebuild-installer.bat
56+
57+
# 3. 检查生成的文件
58+
dir dist-electron\WebSSH_Portable_v1.0.0.zip
59+
```
60+
61+
### 第二步: 更新版本号(可选)
62+
63+
如果需要发布新版本,先更新 `package.json`:
64+
65+
```json
66+
{
67+
"version": "1.0.1"
68+
}
69+
```
70+
71+
### 第三步: 提交代码
72+
73+
```bash
74+
# 添加所有更改
75+
git add .
76+
77+
# 提交
78+
git commit -m "chore: 准备发布 v1.0.1"
79+
```
80+
81+
### 第四步: 创建并推送 tag
82+
83+
```bash
84+
# 创建 tag
85+
git tag v1.0.1
86+
87+
# 添加 tag 注释(可选)
88+
git tag -a v1.0.1 -m "WebSSH v1.0.1 - 便携版"
89+
90+
# 推送 tag 到远程仓库
91+
git push origin v1.0.1
92+
```
93+
94+
### 第五步: 查看构建状态
95+
96+
1. 访问 GitHub 仓库
97+
2. 点击 **Actions** 标签页
98+
3. 找到最新的 "Release WebSSH Portable" 工作流
99+
4. 点击工作流查看构建详情
100+
5. 等待构建完成(约 5-10 分钟)
101+
102+
### 第六步: 发布完成
103+
104+
构建成功后:
105+
106+
1. 访问 **Releases** 页面
107+
2. 查看新创建的 Release
108+
3. 下载 `WebSSH_Portable_v1.0.0.zip`
109+
4. 下载链接格式:
110+
```
111+
https://github.com/dalaolala/webssh/releases/download/v1.0.1/WebSSH_Portable_v1.0.0.zip
112+
```
113+
114+
## 权限配置
115+
116+
### 首次使用需要配置
117+
118+
在仓库设置中开启 Actions 权限:
119+
120+
1. 访问仓库 **Settings**
121+
2. 点击 **Actions****General**
122+
3. 找到 **Workflow permissions**
123+
4. 勾选以下权限:
124+
- ✅ Read and write permissions
125+
5. 点击 **Save** 保存
126+
127+
### GITHUB_TOKEN
128+
129+
工作流会自动使用 `${{ secrets.GITHUB_TOKEN }}`:
130+
- ✅ GitHub 自动提供
131+
- ✅ 无需手动配置
132+
- ✅ 有创建 Release 和上传文件的权限
133+
134+
## 版本号管理
135+
136+
推荐使用语义化版本号:
137+
138+
```
139+
v[主版本].[次版本].[修订版本]
140+
```
141+
142+
示例:
143+
- `v1.0.0` - 首次正式发布
144+
- `v1.0.1` - bug 修复
145+
- `v1.1.0` - 新增功能
146+
- `v2.0.0` - 重大更新
147+
148+
## 发布内容
149+
150+
每次自动发布的文件:
151+
152+
```
153+
WebSSH_Portable_v1.0.0.zip
154+
├── WebSSH.exe # 主程序
155+
├── setup.bat # 安装脚本
156+
├── 安装说明.txt # 使用文档
157+
├── locales/ # 语言包
158+
├── resources/ # 应用资源
159+
└── *.dll, *.pak # 依赖文件
160+
```
161+
162+
## 常见问题
163+
164+
### Q: tag 推送后没有触发 Actions?
165+
166+
A: 检查以下几点:
167+
1. Tag 格式是否正确(必须以 `v` 开头)
168+
2. tag 是否成功推送到远程仓库
169+
3. 在 Actions 页面查看是否有工作流运行
170+
171+
### Q: 构建失败怎么办?
172+
173+
A: 查看失败步骤的日志:
174+
1. 点击失败的工作流
175+
2. 找到失败的步骤
176+
3. 查看详细错误日志
177+
4. 修复问题后重新推送 tag
178+
179+
### Q: 如何重新发布同一版本?
180+
181+
A: Git 不允许重复 tag:
182+
1. 删除远程 tag: `git push origin :refs/tags/v1.0.0`
183+
2. 删除本地 tag: `git tag -d v1.0.0`
184+
3. 修复代码
185+
4. 重新创建并推送 tag
186+
187+
### Q: 如何删除错误的 Release?
188+
189+
A: 在 GitHub Release 页面:
190+
1. 找到需要删除的 Release
191+
2. 点击 **Delete release**
192+
3. 选择删除选项
193+
- 只删除 Release
194+
- 同时删除 tag
195+
196+
### Q: 如何查看构建历史?
197+
198+
A:
199+
1. 访问仓库 **Actions** 页面
200+
2. 查看所有工作流运行记录
201+
3. 每次发布都有详细的构建日志
202+
203+
## 最佳实践
204+
205+
### 发布前检查清单
206+
207+
- [ ] 代码已测试,功能正常
208+
- [ ] 本地打包成功
209+
- [ ] 版本号已更新
210+
- [ ] 代码已提交
211+
- [ ] tag 格式正确(v开头)
212+
- [ ] Actions 权限已配置
213+
214+
### 发布后操作
215+
216+
- [ ] 在 Release 中编写详细的更新说明
217+
- [ ] 更新 README.md 添加下载链接
218+
- [ ] 通知用户新版本发布
219+
- [ ] 清理旧的 Release(可选)
220+
221+
### 分支管理
222+
223+
- **feature-local**: 开发分支
224+
- **tag 发布**: 从 feature-local 分支推送
225+
- **master/main**: 稳定版本(可选)
226+
227+
## 输出链接示例
228+
229+
发布成功后,用户可以通过以下方式下载:
230+
231+
```
232+
# 直接下载链接
233+
https://github.com/dalaolala/webssh/releases/download/v1.0.0/WebSSH_Portable_v1.0.0.zip
234+
235+
# Release 页面
236+
https://github.com/dalaolala/webssh/releases/tag/v1.0.0
237+
238+
# 最新版本
239+
https://github.com/dalaolala/webssh/releases/latest
240+
```
241+
242+
## 技术细节
243+
244+
### 工作流文件位置
245+
246+
```
247+
.github/workflows/release.yml
248+
```
249+
250+
### 运行环境
251+
252+
- **平台**: Windows (windows-latest)
253+
- **Node.js**: v18
254+
- **构建工具**: Electron Builder
255+
256+
### 生成的文件
257+
258+
- **文件名**: `WebSSH_Portable_v1.0.0.zip`
259+
- **文件大小**: 约 13 MB
260+
- **包含**: 完整的应用文件 + 安装脚本
261+
262+
### 自动生成的 Release 说明
263+
264+
Release 的描述会自动包含:
265+
- Git commit 信息
266+
- 相关的变更
267+
- 版本对比(如果有多个版本)

0 commit comments

Comments
 (0)