fix(release): 修复 CI 阻断与发布链路,强制版本一致性

- sysmon 采样测试改为分平台断言:此前无条件断言 working_set > 0,非 Windows 上 cargo test 必失败,v* tag 会停在测试阶段(test job 恰好跑在 ubuntu-latest)
- CI test job 补齐 GPUI 的 Linux 系统依赖,--lib --tests 让集成测试参与编译
- meta job 校验 tag 与 gpui-app/Cargo.toml 版本一致:忘 bump 会导致新版本装完仍自报旧版,客户端反复提示同一更新
- 发布脚本:--exact-match 取 tag 并强制 semver 校验(--always 会产出 v1.0.0-4-gbc9f55c 这类客户端 release_part 截断后判定不新的版本,且该 Release 会占据 /releases/latest 遮蔽真更新);Release 创建/查询/解析失败一律 exit 1,不再让 job 变绿而 OTA 通道为空
- sysmon CPU 差分基准只在真正算出结果时前移:采样间隔过近沿用上次读数,修复手点立即刷新永远读到 0%;修正 cpu_percent 注释口径(0~100,整机占比)
- README 订正发布流程:CI 实际仅出 Linux 产物;补 Release 附件(7z/裸二进制/.sha256)这一 OTA 唯一通道与命名约定;token 需 repo 写权限
This commit is contained in:
2026-09-30 10:14:18 +08:00
parent bc9f55c889
commit 2661a734ee
5 changed files with 112 additions and 26 deletions
+27 -2
View File
@@ -34,16 +34,41 @@ jobs:
echo "version=${version}" >> "$GITHUB_OUTPUT"
owner="${GITEA_OWNER_OVERRIDE:-${GITHUB_REPOSITORY_OWNER}}"
echo "owner=${owner}" >> "$GITHUB_OUTPUT"
# 版本双真源校验:tag 必须与 gpui-app/Cargo.toml 一致。否则新包装完仍自报旧
# 版本号,客户端表现为"每次都提示同一个更新",装多少次都消不掉。
- name: Verify tag matches Cargo.toml version
run: |
tag="${GITHUB_REF_NAME}"
cargo_ver="$(grep -m1 '^version' gpui-app/Cargo.toml | cut -d'"' -f2)"
if [ -z "$cargo_ver" ]; then
echo "::error::无法从 gpui-app/Cargo.toml 解析版本号"
exit 1
fi
if [ "v${cargo_ver}" != "$tag" ]; then
echo "::error::tag(${tag}) 与 gpui-app/Cargo.toml(v${cargo_ver}) 不一致:请先 bump 版本再打 tag"
exit 1
fi
echo "版本一致:${tag}"
# ─── 测试(不依赖系统图形库) ─────────────────────────────────
# ─── 测试 ─────────────────────────────────────────────────────
# 与 build 一样要完整编译 lib(GPUI 会链接 Linux 系统库),缺库会在链接期失败。
# 此前该 job 未安装任何依赖,叠加 sysmon 的跨平台断言缺陷,v* tag 必停在测试阶段。
test:
name: Test
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions-rust-lang/setup-rust-toolchain@v1
- name: Install Linux system deps (GPUI)
run: |
sudo apt-get update
sudo apt-get install -y \
libxcb1-dev libxkbcommon-dev libxkbcommon-x11-dev \
libwayland-dev libasound2-dev libfontconfig-dev \
libx11-dev libxcursor-dev libxrandr-dev libxi-dev
# --tests:让 tests/engine_live.rs 参与编译(#[ignore] 只跳过执行,不跳过编译)
- name: Unit tests
run: cargo test -p mqttx-desktop --lib
run: cargo test -p mqttx-desktop --lib --tests
# ─── 构建矩阵 ─────────────────────────────────────────────────
# 目前 Gitea 实例只注册了 ubuntu-latest 标签的 Linux runner,