1+ @ echo off
2+ setlocal enabledelayedexpansion
3+
4+ REM PortalTransform 发布脚本 (Windows版)
5+ REM 用途:构建项目,推送到GitHub并自动创建release
6+
7+ echo 🚀 开始发布流程...
8+
9+ REM 检查是否有未提交的更改
10+ git status --porcelain > temp_status.txt
11+ set /p status_output = < temp_status.txt
12+ del temp_status.txt
13+
14+ if not " !status_output! " == " " (
15+ echo ⚠️ 检测到未提交的更改,请先提交所有更改
16+ git status
17+ exit /b 1
18+ )
19+
20+ REM 获取当前版本
21+ for /f " tokens=2 delims==" %%i in ('findstr " mod_version=" gradle.properties') do set CURRENT_VERSION = %%i
22+ echo 📦 当前版本: !CURRENT_VERSION!
23+
24+ REM 询问是否更新版本
25+ set /p update_version = " 是否需要更新版本? (y/n): "
26+ if /i " !update_version! " == " y" (
27+ set /p new_version = " 请输入新版本号 (当前: !CURRENT_VERSION! ): "
28+
29+ REM 更新版本号
30+ powershell -Command " (Get-Content gradle.properties) -replace 'mod_version=.*', 'mod_version=!new_version! ' | Set-Content gradle.properties"
31+
32+ echo ✅ 版本已更新为: !new_version!
33+ set CURRENT_VERSION = !new_version!
34+
35+ REM 提交版本更新
36+ git add gradle.properties
37+ git commit -m " chore: bump version to !new_version! "
38+ )
39+
40+ REM 构建项目
41+ echo 🔨 开始构建项目...
42+ call gradlew clean build
43+
44+ if !errorlevel! neq 0 (
45+ echo ❌ 构建失败,请检查错误信息
46+ exit /b 1
47+ )
48+
49+ echo ✅ 构建成功
50+
51+ REM 创建并推送标签
52+ set TAG_NAME = v!CURRENT_VERSION!
53+ echo 🏷️ 创建标签: !TAG_NAME!
54+
55+ git tag -l | findstr /b " !TAG_NAME! $" > nul
56+ if !errorlevel! equ 0 (
57+ set /p recreate_tag = " ⚠️ 标签 !TAG_NAME! 已存在,是否删除并重新创建? (y/n): "
58+ if /i " !recreate_tag! " == " y" (
59+ git tag -d " !TAG_NAME! "
60+ git push origin --delete " !TAG_NAME! " 2 > nul
61+ ) else (
62+ echo ❌ 发布取消
63+ exit /b 1
64+ )
65+ )
66+
67+ git tag " !TAG_NAME! "
68+
69+ REM 推送代码和标签
70+ echo 📤 推送到GitHub...
71+ git push origin
72+ git push origin " !TAG_NAME! "
73+
74+ echo 🎉 发布完成!
75+ echo 📋 摘要:
76+ echo - 版本: !CURRENT_VERSION!
77+ echo - 标签: !TAG_NAME!
78+ echo - GitHub Actions将自动创建release
79+ echo .
80+ echo 📝 请访问GitHub查看构建状态和release
81+
82+ pause
0 commit comments