Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
192 commits
Select commit Hold shift + click to select a range
6af5544
feat: 修改文件路径
PaperHammer Jan 4, 2025
63cdd1a
Merge branch 'dev' of https://github.com/PaperHammer/VirtualPaper int…
PaperHammer Jan 4, 2025
2f486bc
fix: 删除多余项
PaperHammer Jan 4, 2025
deb8b63
fix: 调整 ui 细节
PaperHammer Jan 4, 2025
36bdd9e
fix: 调整架构
PaperHammer Feb 6, 2025
da78e57
feat: 自定义选项卡控件
PaperHammer Feb 15, 2025
a4bd655
feat:完善自定义选项卡控件
PaperHammer Feb 19, 2025
aff6cb7
feat: 项目结构调整基本完成
PaperHammer Feb 20, 2025
8cec627
feat: 创作模块基本流程连通
PaperHammer Feb 24, 2025
74646a7
feat: 完成静态图像信息存储
PaperHammer Mar 10, 2025
32adc4f
feat: 完成 创作-静态图像 页面底栏
PaperHammer Mar 15, 2025
e773fd4
feat: 完成 创作-静态图像-轨迹绘制/保存/加载功能
PaperHammer Mar 29, 2025
1d7a633
feat: 完成 创作-静态图像-图层集-预览图显示
PaperHammer Mar 30, 2025
6a0bd2c
feat: 优化 创作-静态图像 资源加载与渲染的流程
PaperHammer Mar 31, 2025
92fb941
feat: 完成 创作-静态图像 图层基础管理
PaperHammer Apr 1, 2025
4bb649d
feat: 完成 创作-静态图像 笔迹颜色
PaperHammer Apr 1, 2025
4bb202c
feat:更新 创作-静态图像-调色板 组件
PaperHammer Apr 5, 2025
af726ce
feat:完成 创作-静态壁纸-调色板功能
PaperHammer Apr 6, 2025
6bcff9e
feat: 完成 创作-静态图像 模块迁移
PaperHammer Apr 6, 2025
48122e1
feat: 定义控件 ArcListView - 可保证总是选中一项
PaperHammer Apr 6, 2025
c003d8f
feat: 将 静态图像 中绘制元素由 PolyLine 统一为 Path
PaperHammer Apr 6, 2025
bc95c80
feat: 完成 创作-静态图像-画笔箱
PaperHammer Apr 8, 2025
c750999
feat: 完成 创作-静态图像 右侧功能栏 与 画图界面的联动
PaperHammer Apr 8, 2025
97c8319
feat: 重构 创作-静态图像 渲染逻辑
PaperHammer Apr 10, 2025
d239aee
feat: 创作-静态图像 从基于矢量元素绘制迁移到基于像素绘制
PaperHammer Apr 13, 2025
b5c9404
feat: 完成 创作-静态图像 绘制/填充/擦除 功能
PaperHammer Apr 14, 2025
338d7d1
feat: 重构 创作-静态图像 绘制/填充/擦除 功能
PaperHammer Apr 15, 2025
c9b8295
feat: 完成 创作-静态图像 选择 工具; 移除颜色的透明度控制
PaperHammer Apr 16, 2025
4a88d02
feat: 增强 创作-静态图像 选择 工具。切换工具/图层时,自动提交选择区域的内容
PaperHammer Apr 16, 2025
8ae5e83
feat: 优化 创作-静态图像 工具交互方式
PaperHammer Apr 17, 2025
d464f93
feat: 完成 创作-静态图像 裁剪 功能
PaperHammer Apr 17, 2025
98e8695
feat: 完善 创作-静态图像 选择&裁剪 工具的额外交互
PaperHammer Apr 18, 2025
101fd00
feat: 实现 创作-静态图像 画布设置功能 前半部分
PaperHammer Apr 18, 2025
c504fb3
feat: 完成 创作-静态图像 画布设置 工具
PaperHammer Apr 19, 2025
d9520d2
fix: 修复若干 bug
PaperHammer Apr 22, 2025
dbd7b1b
feat: 修复若干 bug;新增 Account 模块
PaperHammer Apr 23, 2025
8f4b912
fix: 修复 核心功能-屏幕壁纸 无法应用的问题
PaperHammer Apr 24, 2025
fcda485
feat: 实现用户登录/注册/用户信息修改
PaperHammer Apr 26, 2025
dff7502
feat: 完成 账户-用户中心-Cloud 展示 功能
PaperHammer Apr 27, 2025
6271299
fix: 修复获取 Cloud 时 Status 无法被赋值的问题
PaperHammer Apr 27, 2025
8986791
feat: 完成 画廊 页面
PaperHammer May 2, 2025
c76939c
feat: 完成 个人中心组件
PaperHammer May 3, 2025
2e2ee27
feat: 完成 Account/Gallery 页面基本功能
PaperHammer May 3, 2025
83a4450
fix: 修复已知问题
PaperHammer May 3, 2025
c51ff9b
fix: 修复 静态图像 选择/裁剪 工具导致数据丢失的问题
PaperHammer May 11, 2025
58607f2
fix: 修复 库内容-控制面板 信息不匹配的问题;修复 WpArrangement 失效的问题
PaperHammer May 11, 2025
d4e61a9
feat: 从 temp 分支合并最新修改
PaperHammer May 12, 2025
b4443e3
fix: 删除分支多余文件
PaperHammer May 13, 2025
5146ed8
feat: merge main into dev
PaperHammer May 14, 2025
f924e75
fix: 重构代码;修复 创作-静态图像 侧栏、底栏模块
PaperHammer Jun 3, 2025
eff3979
fix: 完成 图层拖动排序、图层缩略图透明背景显示
PaperHammer Jun 6, 2025
64c9af7
fix: 重构 静态图像创作 模块
PaperHammer Jun 10, 2025
c3f7558
feat: 优化 笔刷 逻辑使其持续绘制不卡顿
PaperHammer Jun 11, 2025
ee39651
fix: 重构 选择工具
PaperHammer Jun 14, 2025
30ddfb7
fix: 完成重构 裁剪 工具
PaperHammer Jun 15, 2025
c4fc087
feat: 实现 绘制工具 对画布的局部刷新
PaperHammer Jun 15, 2025
fdf36fe
fix: 修复 创作-静态图像 图层可见性
PaperHammer Jun 17, 2025
a879510
fix: 修复 ArcList 删除被选中的第一项时,UI 无法显示新的被选中的第一项的视觉效果的问题;新增对 静态图像-图层管理的撤销与重做
PaperHammer Jun 21, 2025
2602af9
fix: 修复 静态图像 底栏 Combobox 缩放数值与 Slider 显示不一致的问题;修复缩放不平滑的问题
PaperHammer Jun 21, 2025
0447cf8
feat: 为 创作-静态图像 构建 undo/redo 工具
PaperHammer Jun 29, 2025
80eb2d4
feat: 构建键盘快捷键响应控制工具;为图层控制添加快捷键
PaperHammer Jul 1, 2025
4609d6a
fix: 完成 tebviewitem 的为保存标记;修复画布工具异常的问题
PaperHammer Jul 17, 2025
03e90dc
fix: 优化逻辑
PaperHammer Jul 21, 2025
cbeb163
feat: 优化笔迹绘制效果
PaperHammer Jul 28, 2025
ede0959
feature: 重构绘制渲染组件
PaperHammer Aug 17, 2025
6fea07d
chore: 删除多余文件
PaperHammer Aug 17, 2025
0d16971
fix: 修复 native 无法编译的问题
PaperHammer Aug 23, 2025
d76925c
fix: 优化 D2DEngine
PaperHammer Aug 26, 2025
302cd1b
feature: 实现带有透明度笔迹绘制的能力
PaperHammer Oct 12, 2025
47134c1
feature:完成笔刷渲染重构;完成 eraser shader
PaperHammer Oct 15, 2025
2ae0ce6
feature:实现透明度擦除工具
PaperHammer Oct 16, 2025
0faf4c1
fix: 修复透明度擦除亮度丢失的问题
PaperHammer Oct 17, 2025
1076e39
feature: 完成 navigation 图标改造
PaperHammer Oct 20, 2025
cfc7e8a
fix: 还原 sdk 以及 mainwindow
PaperHammer Oct 20, 2025
eb19f36
feature: 适配亮暗热更新
PaperHammer Oct 26, 2025
173b220
feature: 适配所有控件的亮暗热更新
PaperHammer Oct 27, 2025
c46d71d
feature: 删去不必要的 Converter,修改更新链路(完成ui部分)
PaperHammer Oct 29, 2025
aa5777b
feature: 删除不必要的代码;重构 更新器 逻辑与样式
PaperHammer Nov 3, 2025
73a8435
refactor:重构 window 与 page 模型;去除冗余接口与意义不清的实现;项目 AppSettingsPanel 已改造完成
PaperHammer Nov 16, 2025
3ccfa50
featrue: 项目 WpSettingsPanel 已适配部分页面;优化部分逻辑
PaperHammer Nov 16, 2025
9d12f2d
feature: 实现 wpsetting 页面保活;重构 loading 控件;重构 window 导航能力
PaperHammer Nov 23, 2025
bf5fee0
feature: 修复主题热更新时部分窗口无法更新的问题;重构 playerweb;重构 preview 窗口;重构 details 窗口
PaperHammer Dec 13, 2025
0811af5
feature: 完善 playerweb core;优化 arcnavigation param 参数传递方式;重构 edit 窗口;重…
PaperHammer Dec 24, 2025
d87b083
fix:修复热切换主题无法保存的问题;去掉主窗口关闭时不必要的代码逻辑;
PaperHammer Jan 9, 2026
19c501d
fix:修复 ArcWindow_Activated 时 UpdateTitleBar 不生效的问题
PaperHammer Jan 9, 2026
2dccc7a
feature:新增壁纸导入方式,避免在管理员模式下无法导入壁纸
PaperHammer Jan 12, 2026
9fc306e
fix:修复 lib 无法添加壁纸无法及时更新 ui 的问题;调整部分文本及窗口交互
PaperHammer Jan 13, 2026
12b4ea0
fix:优化代码逻辑
PaperHammer Jan 14, 2026
938a853
fix:添加 preview apply 事件;替代 observablelist;优化 mvvm 逻辑;规范化配置文件名格式
PaperHammer Jan 15, 2026
8b02ed6
feature:lib 按导入时间降序排序;优化 lib 壁纸 title 显示;lib 支持按照 title 搜索;增量加载(todo)
PaperHammer Jan 19, 2026
b410a1f
feature:lib 增量加载 & 虚拟化(bug:导入时进度条不更新)
PaperHammer Jan 19, 2026
808c04a
fix:i18n 补全;修复 loading 进度条不更新的问题;去除不必要 inforbar_mag
PaperHammer Jan 20, 2026
98f19f7
fix:补全缺失文案;替换组件为 ArcButton;去除多余代码
PaperHammer Jan 20, 2026
b0afc55
chore:解冲突
PaperHammer Jan 21, 2026
648c409
fix:修复 details windowkey 异常导致无法响应主题热更新的问题;调整 preview sidepanel 背景色
PaperHammer Jan 22, 2026
fd17e17
fix:修复 selectedmonitor 被重置的问题
PaperHammer Jan 22, 2026
662715b
temp:adjust 修复中
PaperHammer Jan 23, 2026
bee1337
fix:adjust 修复;(web player 的 parallax 与 scale 待修复)
PaperHammer Jan 24, 2026
a780066
fix: 修复 playback 异常导致桌面聚焦信息无法传递的问题(form parallax 异常待修复)
PaperHammer Jan 25, 2026
08f0026
fix:修复 form player parallax 不生效的问题
PaperHammer Jan 26, 2026
94e1e1d
fix:去除 preview-apply 的多余步骤;player 适配 depth img;修复 monitor content ind…
PaperHammer Jan 26, 2026
0b0ef09
fix:3d image 适配 object-fit
PaperHammer Jan 27, 2026
0b7ecd3
fix:同一显示器内容平滑切换
PaperHammer Jan 27, 2026
ca4a04e
fix:修复”复制“”扩展“切换不生效的问题;修复无法切换展示方式的问题;”复制“”扩展“下无法 Adjust 的问题
PaperHammer Jan 29, 2026
3ec09a0
chore:移除多余目录
PaperHammer Jan 29, 2026
ca01f22
feature:补充测试数据
PaperHammer Jan 30, 2026
95ce4c7
chore:调整代码格式
PaperHammer Feb 1, 2026
32a907f
fix:调整部分项目配置,减少不必要的进包内容;去除 draft-configspace 及其导航子页面的键盘键位绑定;模板内容配置化
PaperHammer Feb 2, 2026
4d5c62c
feature:优化 card 组件;重构 draft 导航逻辑;删除不必要的 接口 Bridge
PaperHammer Feb 6, 2026
0f319f9
feature:修复新结构下 AI-Model 与 Shaders 加载路径;补全 project-getstart drop 方法;修复…
PaperHammer Feb 8, 2026
2b29e3a
fix:使用 DependencyInjection 代替自定义 DI 容器;arcpage 与 arcnavi 适配 keepalive…
PaperHammer Feb 9, 2026
3725640
fix:重构 staticimg 结构
PaperHammer Feb 10, 2026
9a9121c
fix:重构 staticInk(待验证)
PaperHammer Feb 10, 2026
dbe0042
fix:定义 ArcUserControl;定义 Payload 透传逻辑
PaperHammer Feb 12, 2026
de2cd3f
fix:优化 staticImg initdata 新建项目逻辑
PaperHammer Feb 12, 2026
c9ffd20
fix:修复“选择”“裁剪‘在还原时,残留虚影的问题
PaperHammer Feb 12, 2026
154475d
fix:提前保存时选择目录的时机
PaperHammer Feb 12, 2026
9cb7dee
fix:修复 save 和 rencentused 逻辑;(打开文件解析异常,待修复)
PaperHammer Feb 13, 2026
5a57696
fix:修复无法解析 vpd 文件的问题;修复无法保存不可见图层的问题
PaperHammer Feb 22, 2026
f495ce2
fix:修复绘制合成异常的问题
PaperHammer Feb 24, 2026
c4cb25c
feature:画笔适配 thu 更新;初始化适配 thu 更新;修复画笔绘制时产生的边界黑框
PaperHammer Feb 25, 2026
62c9c7e
feature:裁剪、移动、填充适配 thu 更新;优化 rendertarget clone 效率
PaperHammer Feb 25, 2026
08ac981
fix:修复 图层基础操作 的 undo/redo;新建与复制图层的名字适配 i18n
PaperHammer Feb 26, 2026
c7944b1
feature:scroll 是否定点缩放;scroll 适配 shift 横向滚动;默认中心缩放
PaperHammer Feb 27, 2026
fb3e566
fix:修复缩放box因多次赋相同值导致无法显示数值的问题;combobox 获得焦点后点击 container 区域无法失去焦点的问题;…
PaperHammer Mar 3, 2026
e94c656
feature:“绘制能力(画笔 擦除 工具)”适配撤销/重做;工具添加 tooltip
PaperHammer Mar 4, 2026
5c97113
feature:填充工具适配撤销/重做
PaperHammer Mar 4, 2026
10dff2e
feature:优化内存占用
PaperHammer Mar 4, 2026
f050677
feature:“选择工具”适配undo/redo
PaperHammer Mar 4, 2026
846a734
feature:裁剪工具适配 undo/redo
PaperHammer Mar 5, 2026
dbb6d1a
fix:优化 renderbase 及子类架构、对象内存优化;添加紧急崩溃保存逻辑
PaperHammer Mar 8, 2026
4f6aa18
fix:croptool 裁剪后切换到绘制工具显示异常的问题
PaperHammer Mar 16, 2026
ba6e69b
fix:crop aspect 点击频繁导致快照异常
PaperHammer Mar 17, 2026
aa0a2d8
fix:修复 canvasset 功能不可用的问题
PaperHammer Mar 17, 2026
a37a62f
fix:修复 canvasset 旋转、反转渲染异常;优化 canvasset 缩放
PaperHammer Mar 18, 2026
43651c4
fix:canvasset 适配 undo/redo
PaperHammer Mar 19, 2026
3fc1780
fix:修复 arcpage 框架问题导致的崩溃
PaperHammer Mar 22, 2026
8e2f6c0
fix:修复 undo/redo 处理 canvasset 缩放时的精度损失问题
PaperHammer Mar 23, 2026
f85f875
fix:修复 crop 模板因 layerid 为空导致的数据异常
PaperHammer Mar 23, 2026
94f97d1
fix:修复 crop 撤销异常的问题(绘制所有操作接入 undo/redo)
PaperHammer Mar 24, 2026
a3e4456
chore:删除注释
PaperHammer Mar 24, 2026
c608f4f
fix:修复选择工具透明覆盖的问题
PaperHammer Mar 25, 2026
c15be91
chore:优化;添加注释
PaperHammer Mar 25, 2026
f98684c
fix:保存标记动态响应
PaperHammer Mar 25, 2026
40b3e7b
feature:添加 tab 关闭时保存检测
PaperHammer Mar 25, 2026
9a22826
feature:顶级窗口添加关闭未保存拦截
PaperHammer Mar 27, 2026
e9147e9
fix:注释不必要的字符串分配
PaperHammer Mar 27, 2026
59c9f63
feature:tab + 按钮新建项
PaperHammer Mar 27, 2026
36dae87
fix:tabview 添加项目;优化 card 交互;修复 SharedDevice 的配置;优化 globalmessage 的调用;…
PaperHammer Mar 30, 2026
2b07aa7
chore:优化逻辑;wpf tray 主题切换疑似失效?
PaperHammer Mar 30, 2026
bc1cc05
fix:文本 i18n;降级依赖项(wpf-ui)>4.0.0 导致热更新主题失效
PaperHammer Mar 31, 2026
341b4b7
fix:修复 arcnavi 未合并 keepalive page 的 payload 导致的数据丢失问题
PaperHammer Mar 31, 2026
eaa6f48
feature:workpace i18n
PaperHammer Mar 31, 2026
345725f
feature:workspace menuitem 切换为 command 触发(剩余 open、exit)
PaperHammer Mar 31, 2026
e058485
feature:实现 exit(剩余 open,export)
PaperHammer Mar 31, 2026
6766880
feature:export 逻辑实现
PaperHammer Mar 31, 2026
cb85e52
feature:完成 export 基础结构;调整引用,删除无用代码
PaperHammer Apr 1, 2026
3ab9e3f
feature:export 流程完善
PaperHammer Apr 2, 2026
eadf29e
fix:优化代码
PaperHammer Apr 5, 2026
86e63dd
fix:修复不合理逻辑
PaperHammer Apr 5, 2026
197c6b6
feature:导出配置
PaperHammer Apr 7, 2026
117bfa2
fix:更改图标与logo;删除多余的图片资源;修复托盘二次启动窗口乱跳的问题;修复从 scrscreen 切到 lib 下内容不显示的问题
PaperHammer Apr 12, 2026
d80d8f5
feature:更新 setup iss,出 release 包
PaperHammer Apr 12, 2026
fe3c236
feature:更新嵌入安装窗口的图片
PaperHammer Apr 12, 2026
472b250
fix:补全绘图界面 i18n
PaperHammer Apr 12, 2026
aabc7d4
feature:更新 readme
PaperHammer Apr 12, 2026
4d3befa
fix:修复资源缺失、安装结果与旧版混杂的问题;修复在未选择保存路径时,为保存标记消失,导致异常;修复保存的文件无法关闭的问题;修复在工作…
PaperHammer Apr 14, 2026
cb157d0
chore:merge main and resolve conflicts
PaperHammer Apr 14, 2026
a1c51eb
fix:修复新建、第一次打开编辑面板时可以撤销的问题;修复首次保存后标记不变的问题
PaperHammer Apr 21, 2026
b1ed347
fix:创作界面可以导入 img;新增“另存为”选项;修复 open 没有反应的问题;修复保存状态不正确的问题
PaperHammer Apr 24, 2026
95e0ae4
fix:修复导入窗口文件格式异常的问题
PaperHammer Apr 24, 2026
6a870ba
chore: merge from feature_opti_staticImg
PaperHammer Apr 24, 2026
a7366be
feature:v0.4.0.1
PaperHammer Apr 24, 2026
b55c491
fix:update readme
PaperHammer Apr 24, 2026
42b3c19
fix:修复 pack
PaperHammer Apr 28, 2026
b6bc26d
Merge branch 'dev' of https://github.com/PaperHammer/VirtualPaper int…
PaperHammer Apr 28, 2026
8082440
Feature test pipeline (#13)
PaperHammer May 6, 2026
3fe1d54
Feature test pipeline (#15)
PaperHammer May 7, 2026
6df0017
Feature wallpaper extension (#16)
PaperHammer May 15, 2026
a7ac4be
fix:修复删除元素无法触发加载的问题;修复新加载的内容缩放中心不正确的问题
PaperHammer May 15, 2026
a512d00
fix:修复壁纸运行时 alt+tab 页有对应黑窗口的问题
PaperHammer May 15, 2026
0ca191f
chore:解冲突
PaperHammer May 15, 2026
7353a41
fix:补全 uac-admin 提示;还原 mainwindow 默认 select 选项
PaperHammer May 15, 2026
ddfe18e
fix:修复 ui 进程任务管理器显示图标带有黑色背景的问题
PaperHammer May 15, 2026
f5dc66c
fix:去除多余的 grpc;添加 dataassist 测试项;修复点击关闭后无法及时更新 monitor thu 的问题
PaperHammer May 16, 2026
eb01c75
fix:尝试修复 yml 导致的错误
PaperHammer May 16, 2026
fbfe048
chore:解冲突
PaperHammer May 16, 2026
8ed3977
fix:调整 yml
PaperHammer May 16, 2026
bd8e9c6
chore:解冲突
PaperHammer May 16, 2026
3887936
feature:调整 yml
PaperHammer May 16, 2026
76f3c34
chore:解冲突
PaperHammer May 16, 2026
ac6f4e3
fix:调整 yml
PaperHammer May 16, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
44 changes: 36 additions & 8 deletions .github/workflows/auto-version-release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ jobs:
main_sha: ${{ steps.shas.outputs.main_sha }}
dev_sha: ${{ steps.shas.outputs.dev_sha }}
bugfix_sha: ${{ steps.shas.outputs.bugfix_sha }}
release_sha: ${{ steps.shas.outputs.release_sha }}

steps:
- name: Checkout with full history
Expand All @@ -57,6 +58,10 @@ jobs:
Write-Output "bugfix_sha=$bugfixSha" >> $env:GITHUB_OUTPUT
Write-Host "bugfix SHA: $bugfixSha"

$releaseSha = git rev-parse origin/release
Write-Output "release_sha=$releaseSha" >> $env:GITHUB_OUTPUT
Write-Host "release SHA: $releaseSha"

- name: Determine source branch and version increment
id: branch_info
shell: powershell
Expand All @@ -66,9 +71,12 @@ jobs:
$sourceBranch = $env:PR_HEAD_REF
$incrementType = "patch"

if ($sourceBranch -eq "dev") {
if ($sourceBranch -eq "release") {
$incrementType = "feature"
Write-Host "Source branch: release - incrementing minor version (feature update)"
} elseif ($sourceBranch -eq "dev") {
$incrementType = "minor"
Write-Host "Source branch: dev - incrementing minor version"
Write-Host "Source branch: dev - incrementing build version (daily update)"
} elseif ($sourceBranch -eq "bugfix") {
$incrementType = "patch"
Write-Host "Source branch: bugfix - incrementing patch version"
Expand Down Expand Up @@ -100,11 +108,15 @@ jobs:
$currentVersion = "$major.$minor.$build.$revision"

$incrementType = "${{ steps.branch_info.outputs.increment_type }}"
if ($incrementType -eq "minor") {
$build = $build + 1
$revision = 0
if ($incrementType -eq "feature") {
$minor = $minor + 1 # 第2位 +1
$build = 0 # 第3位 清零
$revision = 0 # 第4位 清零
} elseif ($incrementType -eq "minor") {
$build = $build + 1 # 第3位 +1
$revision = 0 # 第4位 清零
} else {
$revision = $revision + 1
$revision = $revision + 1 # 第4位 +1
}

$newVersion = "$major.$minor.$build.$revision"
Expand Down Expand Up @@ -331,7 +343,7 @@ jobs:
run: |
$sourceBranch = "${{ needs.prepare.outputs.source_branch }}"

if ($sourceBranch -eq "dev" -or $sourceBranch -eq "bugfix") {
if ($sourceBranch -eq "dev" -or $sourceBranch -eq "bugfix" -or $sourceBranch -eq "release") {
Write-Host "Syncing version back to $sourceBranch..."
git config --local user.email "action@github.com"
git config --local user.name "GitHub Action"
Expand Down Expand Up @@ -363,7 +375,9 @@ jobs:
- name: Print summary
run: |
INCREMENT="${{ needs.prepare.outputs.increment_type }}"
if [ "$INCREMENT" = "minor" ]; then TYPE="Feature Update"; else TYPE="Bugfix Update"; fi
if [ "$INCREMENT" = "feature" ]; then TYPE="Major Feature Update"
elif [ "$INCREMENT" = "minor" ]; then TYPE="Daily Update"
else TYPE="Bugfix Update"; fi

echo ""
echo -e "\033[0;32m================= Build Complete =================\033[0m"
Expand Down Expand Up @@ -411,6 +425,7 @@ jobs:
$mainSha = "${{ needs.prepare.outputs.main_sha }}"
$devSha = "${{ needs.prepare.outputs.dev_sha }}"
$bugfixSha = "${{ needs.prepare.outputs.bugfix_sha }}"
$releaseSha = "${{ needs.prepare.outputs.release_sha }}"
$sourceBranch = "${{ needs.prepare.outputs.source_branch }}"

# --- 回滚 main ---
Expand Down Expand Up @@ -458,6 +473,19 @@ jobs:
} else {
Write-Host "[SKIP] bugfix: no changes detected, rollback not needed"
}
} elseif ($sourceBranch -eq "release" -and $releaseSha) {
$ErrorActionPreference = 'Continue'
$currentRelease = git rev-parse origin/release 2>&1
$ErrorActionPreference = 'Stop'
if ($LASTEXITCODE -eq 0 -and $currentRelease -ne $releaseSha) {
Write-Host "[ROLLBACK]" -ForegroundColor Cyan -NoNewline; Write-Host " release: $currentRelease -> $releaseSha"
git checkout -B release origin/release
git reset --hard $releaseSha
git push --force origin release
Write-Host "[OK]" -ForegroundColor Green -NoNewline; Write-Host " release rolled back"
} else {
Write-Host "[SKIP] release: no changes detected, rollback not needed"
}
}

Write-Host ""
Expand Down
100 changes: 14 additions & 86 deletions .github/workflows/branch-protection.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,6 @@ concurrency:
permissions:
contents: read
statuses: write
pull-requests: write
issues: write

jobs:
check-source-branch:
Expand All @@ -30,106 +28,36 @@ jobs:
echo "Source branch: $SOURCE_BRANCH"
echo "Target branch: $BASE_BRANCH"

if [ "$SOURCE_BRANCH" != "dev" ] && [ "$SOURCE_BRANCH" != "bugfix" ]; then
echo -e "\033[0;31m[ERROR]\033[0m Only dev and bugfix branches are allowed to merge into main branch."
if [ "$SOURCE_BRANCH" = "release" ] || [ "$SOURCE_BRANCH" = "dev" ] || [ "$SOURCE_BRANCH" = "bugfix" ]; then
echo -e "\033[0;32m[OK]\033[0m Source branch validation passed: $SOURCE_BRANCH -> main"
else
echo -e "\033[0;31m[ERROR]\033[0m Only release, dev and bugfix branches are allowed to merge into main."
echo "Current source branch: $SOURCE_BRANCH"
echo ""
echo "Please follow the correct workflow:"
echo "For features/enhancements:"
echo "1. Merge your feature branch into dev first"
echo "2. Ensure tests pass on dev branch"
echo "3. Then create PR from dev to main"
echo ""
echo "For urgent bugfixes:"
echo "1. Create bugfix branch from main"
echo "2. Make necessary fixes"
echo "3. Create PR from bugfix to main"
echo "Correct workflow:"
echo " release -> main : Major feature update (minor version +1)"
echo " dev -> main : Daily update (build version +1)"
echo " bugfix -> main : Urgent bugfix (patch version +1)"
exit 1
else
echo -e "\033[0;32m[OK]\033[0m Source branch validation passed: $SOURCE_BRANCH -> main"
fi

- name: Add PR comment
if: always()
uses: actions/github-script@v7
with:
script: |
const sourceBranch = context.payload.pull_request.head.ref;

let body;

if (sourceBranch === 'dev' || sourceBranch === 'bugfix') {
body = '## [OK] Branch Validation Passed\n\n' +
'**Source Branch**: `' + sourceBranch + '` -> **Target Branch**: `main`\n\n' +
'**[OK]** This PR follows the correct workflow: `' + sourceBranch + '` -> `main`\n\n' +
'**Next Steps:**\n' +
'- Ensure all tests pass on the ' + sourceBranch + ' branch\n' +
'- Request code review\n' +
'- Merge when ready\n\n' +
'---\n' +
'*This check ensures only dev and bugfix branches can merge into main.*';
} else {
body = '## [ERROR] Invalid Source Branch\n\n' +
'**Source Branch**: `' + sourceBranch + '` -> **Target Branch**: `main`\n\n' +
'**[ERROR]** Only `dev` and `bugfix` branches are allowed to merge into `main` branch.\n\n' +
'**Correct Workflow:**\n\n' +
'**For Features/Enhancements:**\n' +
'1. Merge your feature branch into `dev` first\n' +
'2. Ensure tests pass on `dev` branch\n' +
'3. Create PR from `dev` to `main`\n\n' +
'**For Urgent Bugfixes:**\n' +
'1. Create `bugfix` branch from `main`\n' +
'2. Make necessary fixes\n' +
'3. Create PR from `bugfix` to `main`\n\n' +
'**Please close this PR and follow the correct workflow.**\n\n' +
'---\n' +
'*This check ensures code quality and proper release flow.*';
}

const comments = await github.rest.issues.listComments({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number
});

const existingComment = comments.data.find(c =>
c.body.includes('Branch Validation') || c.body.includes('Invalid Source Branch')
);

if (existingComment) {
await github.rest.issues.updateComment({
owner: context.repo.owner,
repo: context.repo.repo,
comment_id: existingComment.id,
body: body
});
} else {
await github.rest.issues.createComment({
owner: context.repo.owner,
repo: context.repo.repo,
issue_number: context.payload.pull_request.number,
body: body
});
}

- name: Create status check
if: always()
uses: actions/github-script@v7
with:
script: |
const sourceBranch = context.payload.pull_request.head.ref;

const state = (sourceBranch === 'dev' || sourceBranch === 'bugfix') ? 'success' : 'failure';
const description = (sourceBranch === 'dev' || sourceBranch === 'bugfix')
? 'Source branch validation passed [OK]'
: 'Only dev and bugfix branches allowed to merge to main [FAILED]';
const allowed = ['release', 'dev', 'bugfix'];
const isAllowed = allowed.includes(sourceBranch);

await github.rest.repos.createCommitStatus({
owner: context.repo.owner,
repo: context.repo.repo,
sha: context.payload.pull_request.head.sha,
state: state,
state: isAllowed ? 'success' : 'failure',
target_url: context.payload.repository.html_url + '/actions/runs/' + context.runId,
description: description,
description: isAllowed
? `[OK] Source branch validation passed: ${sourceBranch} -> main`
: `[FAILED] Only release, dev and bugfix branches allowed to merge to main`,
context: 'branch-protection/source-validation'
});
Original file line number Diff line number Diff line change
@@ -1,15 +1,19 @@
name: Dev Branch CI
name: Pre-publish Branch CI Check

on:
push:
branches:
- dev
- release
- bugfix
pull_request:
branches:
- dev
- release
- bugfix

concurrency:
group: dev-ci-${{ github.event.pull_request.number || github.ref }}
group: pre-publish-branch-ci-check-${{ github.event.pull_request.number || github.ref }}
cancel-in-progress: true

permissions:
Expand Down Expand Up @@ -309,6 +313,7 @@ jobs:
uses: actions/github-script@v7
with:
script: |
const branch = context.ref.replace('refs/heads/', '') || context.payload.pull_request?.head?.ref || 'unknown';
const state = process.env.TEST_STATUS || 'failure';
const description = process.env.TEST_DESCRIPTION || 'Tests failed';
await github.rest.repos.createCommitStatus({
Expand All @@ -317,6 +322,6 @@ jobs:
sha: context.sha,
state: state,
target_url: `${context.payload.repository.html_url}/actions/runs/${context.runId}`,
description: description,
context: 'ci/dev-tests'
description: `[${branch}] ${description}`,
context: 'ci-check/pre-publish-tests'
});
Loading