| Crates.io | ugp |
| lib.rs | ugp |
| version | 1.0.0 |
| created_at | 2025-11-24 07:30:11.245578+00 |
| updated_at | 2025-12-22 10:16:48.071768+00 |
| description | 仅适用用内部环境使用!应用快速发布工具,支持配置初始化(init)和一键发布(publish)流程 |
| homepage | https://github.com/yuanlu954/ugp-cli |
| repository | https://github.com/yuanlu954/ugp-cli.git |
| max_upload_size | |
| id | 1947500 |
| size | 177,389 |
ugp -h)在仓库根目录执行:
// 本地安装并执行
cargo install --path . && ugp publish --stable --only-publish
cargo run -p ugp -- -h
典型输出如下(与实际版本号略有差异属于正常):
ugp 0.9.8
仅适用用内部环境使用!应用快速发布工具,支持配置初始化(init), 版本号更新(next)和一键发布(publish)流程
Usage: ugp [OPTIONS] <COMMAND>
Commands:
publish 发布
next 下一个版本
init 初始化
help Print this message or the help of the given subcommand(s)
Options:
-v, --verbose 启用详细日志模式
-h, --help Print help
-V, --version Print version
含义说明:
publish:发布相关流程(构建安装包 + 生成发布文件 + 版本历史维护)next:计算下一个版本号(major/minor/patch/next/custom)init:初始化 .ugp 目录及配置文件help:查看整个 CLI 或某个子命令的使用说明(例如 ugp publish --help)-v/--verbose:打开详细日志输出,方便排查发布问题ugp 是配套的发布辅助 CLI,用于:
src-tauri/tauri.conf.json 中的应用信息(名称、版本).ugp/config.toml 的配置生成升级包发布文件.ugp/version 下的版本信息(历史版本)推荐在仓库根目录运行以下命令。
ugp initcargo run -p ugp -- init
.ugp/config.toml.ugp 目录加入版本控制,方便团队共享配置ugp nextcargo run -p ugp -- next
行为:
src-tauri/tauri.conf.json 读取当前版本(例如 2.3.24)major:2.3.24 -> 3.0.0minor:2.3.24 -> 2.4.0patch:2.3.24 -> 2.3.25next:等同 patchcustom:手动输入任意版本号tauri.conf.json / Cargo.toml,需要后续扩展逻辑ugp publishcargo run -p ugp -- publish # 交互选择 beta/stable/rollback
cargo run -p ugp -- publish --beta # 直接发布测试版
cargo run -p ugp -- publish --stable
cargo run -p ugp -- publish --rollback
cargo run -p ugp -- publish --beta --only-publish # 只发布,不重新打包
流程(简化):
.ugp/config.toml,拿到:
install_package_pathrelease_package_pathrelease_urlsrc-tauri/tauri.conf.json 中读取应用名称、版本号install_package_path 下拷贝:
{productName}_{version}_{arch}_zh-CN.msi.msi.sigreleases.json / releases_beta.json:
notes 字段来自 README.md 渲染后的 HTMLforce_update 按发布类型设置./.ugp/version 并按配置复制到网络共享目录stable,额外生成当前版本号对应的历史文件:
./.ugp/version/{version}.json--beta
--stable
--rollback
releases.json 相关信息,不动安装包)--only-publish
--beta / --stable 搭配使用ugp publish 会先执行一次打包命令(详见下文构建命令),加上 --only-publish 后只做发布动作,不重新构建安装包ugp publish 在发布前需要有可用的安装包。构建安装包时的命令顺序为:
如果设置了环境变量 UGP_BUILD_CMD,优先执行,例如:
# Windows PowerShell 示例
$env:UGP_BUILD_CMD = "pnpm tauri build"
cargo run -p ugp -- publish --beta
# 或使用 npm
$env:UGP_BUILD_CMD = "npm run tauri -- build"
cargo run -p ugp -- publish --beta
# 或使用 cargo-tauri
$env:UGP_BUILD_CMD = "cargo tauri build"
cargo run -p ugp -- publish --beta
cmd /C <UGP_BUILD_CMD>sh -lc '<UGP_BUILD_CMD>'UGP_BUILD_CMD 一般都能正常执行。如果未设置 UGP_BUILD_CMD,会按顺序自动尝试:
pnpm tauri build
npm run tauri -- build
cargo tauri build
找到第一个执行成功的命令即视为构建成功。
get_version_history内部工具函数 generate::get_version_history() 会:
./.ugp/version 目录下所有 .json 文件releases.json、releases_beta.jsonsemver 解析并按版本大小排序(2.10.0 > 2.9.0)Vec<String>,例如:["1.3.0", "1.9.0", "2.0.0", "2.3.24"]运行路径
tauri.conf.json 路径:./src-tauri/tauri.conf.json./.ugp/config.toml文件命名约定
{productName}_{version}_{arch}_zh-CN.msi.msi.sig.ugp/version/{version}.json版本号格式
x.y.z 语义化版本规范(如 2.3.24)ugp next 和版本历史排序都依赖此格式发布前准备
.sig 存在.ugp/config.toml 中的网络路径有写权限ugp,避免路径不一致构建环境
pnpm / npm / cargo 命令在当前 shell 下可用cmd /C 执行命令,行为与手动在终端里输入一致sh 的环境下能找到相应命令(PATH 配置正确)UGP_BUILD_CMD。如需进一步扩展(例如自动写回版本、发布后自动推送 Git tag 等),可以在现有命令基础上新增子命令或扩展 publish/next 的行为。