Skip to content

ci(release): Windows 发布任务改装官方 protoc,安装失败即报错 - #1133

Merged
AlphaCatMeow merged 1 commit into
Stack-Cairn:mainfrom
AlphaCatMeow:ci-release-windows-protoc
Nov 3, 2026
Merged

AlphaCatMeow merged 1 commit into
Stack-Cairn:mainfrom
AlphaCatMeow:ci-release-windows-protoc

Conversation

@AlphaCatMeow

Copy link
Copy Markdown
Contributor

v2.0.2 桌面发布第 1 次运行时,Windows x64 的 choco install protoc 因 Chocolatey 源报错没装上,但步骤最后一条命令是 Out-File,仍显示成功;12 分钟后构建报 Could not find protoc。这次把 Windows 发布任务的这一步改成 CI 里已有的写法:下载官方 protoc 34.0,任何一环失败都让步骤直接失败。

Closes #1132
Depends-On: none
Stack-Root: #1133
Cross-Repo: none

改动

  • .github/workflows/desktop-release.yml Windows x64 任务的 Install protobuf compiler:
    • 以前:choco install protoc,再把 Chocolatey 目录写进 GITHUB_PATH;安装失败不报错。
    • 现在:从 github.com/protocolbuffers/protobuf/releases 下载 protoc-34.0-win64.zip,解压后运行 protoc --version 验证,设置 PROTOC 并加入 PATH。与 ci.yml 的 Windows 步骤、Linux 发布任务用同一来源和版本。
  • 只改这一步,其他任务和平台不变。

验证

  • 把这一步按 GitHub 的 pwsh 包装方式($ErrorActionPreference = 'stop'、. '{0}')抽出来在本机运行:
    场景 结果
    PROTOC_VERSION=34.0 退出 0,输出 libprotoc 34.0,GITHUB_ENV 写入 PROTOC=...\protoc-34.0\bin\protoc.exe
    版本不存在(下载 404) 退出 1,GITHUB_ENV 未写入
    zip 损坏 / protoc.exe 缺失 / protoc 返回非 0(复审补测) 均退出 1
  • yaml 解析通过,Windows 任务该步骤 env.PROTOC_VERSION 为 "34.0";与原文件差异仅此一步加两行注释。
  • 在 main 导出树上换入新工作流,scripts/release/*.test.mjs(含读取该工作流的 verify-kbrain-packaging.test.mjs)29 个:27 pass / 0 fail / 2 skip。
  • 对抗复审:未发现阻止合并的问题。确认 crates/agent-gui/src-tauri/build.rs 的 prost-build 0.14 先读 PROTOC;只编译 gateway.proto、gateway_ws.proto,不用 well-known types,不需要额外 include 目录;job 内没有其他步骤依赖 Chocolatey 路径。P3:三处 protoc 下载都没校验 SHA256(与现状一致),升级版本需同时改三处。
  • 未运行:真实 Windows 发布 runner 上的这一步,要等下次打标签发布时验证。

Screenshots / preview

无前端改动。

🤖 Generated with Claude Code

Closes Stack-Cairn#1132

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AlphaCatMeow
AlphaCatMeow merged commit 0c9eac5 into Stack-Cairn:main Nov 3, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

ci(release): Windows 发布任务 protoc 安装失败时步骤仍显示成功

1 participant