Skip to content

fix(CI): 修复 Marketplace 预发布 publish 失败(package job 对 rc tag 补 --pre-release),补 v0.0.10-rc.2 物料 - #61

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/fix-vsce-prerelease-package
Jul 4, 2026
Merged

fix(CI): 修复 Marketplace 预发布 publish 失败(package job 对 rc tag 补 --pre-release),补 v0.0.10-rc.2 物料#61
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/fix-vsce-prerelease-package

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

背景

v0.0.10-rc.1 发布流水线在最后一步失败——publish job 的「发布到 VS Code Marketplace」步骤报错:

```
Cannot use '--pre-release' flag with a package that was not packaged as pre-release.
Please package it using the '--pre-release' flag and publish again.
```

其余全部成功(三平台测试、打包、GitHub Release v0.0.10-rc.1 prerelease 已附 .vsix)。Marketplace/OpenVSX 本轮未发出任何东西0.0.10 版位在两市场仍干净可用。

根因

  • package job 以 vsce package --no-yarn不带 --pre-release)打出「正式版」VSIX 作为 artifact;
  • publish job 却对 rc tag 用 vsce publish --packagePath *.vsix --pre-release
  • vsce 强约束:以 --pre-release 发布的 VSIX 必须在打包时即带 --pre-release 标记,否则拒绝发布。打包端与发布端 flag 判定不对称即致此错。
  • 历史 rc(0.0.9-rc.*)从未真正发到市场(Marketplace 步骤因缺 `VSCE_PAT`/变量被跳过),故该缺陷此前从未被暴露。

修复

  • ci.yml package job:打包步骤改为与 publish / OpenVSX 同款 `PRE_FLAG` 判定(`GITHUB_REF_NAME` 含 `rc` 即追加 `--pre-release`),令同一枚预发布 VSIX 贯穿 `github-release` / Marketplace / OpenVSX 三渠道(单一产物、零重复打包)。正式版 tag(无 `rc`)与分支/PR CI 仍打普通 VSIX,行为不变。
  • 知识沉淀:新增 issue #11
  • rc.2 物料:新增 `docs/releases/v0.0.10-rc.2.md` + CHANGELOG `[0.0.10-rc.2]` 条目,供合并后打 `v0.0.10-rc.2` 重跑(不 force-push tag,审计清晰:rc.1=CI 缺陷失败、rc.2=修复后走通)。

`package.json` 版本仍为 `0.0.10`(预发布语义由 `--pre-release` + tag 命名承载,不改版本号)。

验证

合并后打 `v0.0.10-rc.2` tag,确认:`Package vsix` 以 `--pre-release` 打包成功 → `github-release` 建 prerelease 附 vsix → `publish` 的 Marketplace 步骤(`--pre-release`)成功 → OpenVSX 步骤成功(显式查日志,因其 `continue-on-error`);到 Marketplace / OpenVSX 页面确认 `0.0.10` 预发布上架。

🤖 Generated with Claude Code, CodeX, Gemini

…ish 失败;

- 根因:package job 以 vsce package(不带 --pre-release)打出正式版 VSIX,publish job 却对 rc tag 用 vsce publish --pre-release,vsce 强约束「以 pre-release 发布的 VSIX 必须打包时即带 --pre-release」,故 v0.0.10-rc.1 的 Marketplace 步骤报错失败、其后 OpenVSX 步骤被 skipped,三渠道仅 github-release 成功;
- 修复:package 打包步骤改用与 publish/OpenVSX 同款 PRE_FLAG 判定(GITHUB_REF_NAME 含 rc 即追加 --pre-release),令同一枚预发布 VSIX 贯穿 github-release / Marketplace / OpenVSX 三渠道;正式版 tag 与分支/PR CI 行为不变;
- 沉淀 issue.md #11;补 CHANGELOG [0.0.10-rc.2] 与 docs/releases/v0.0.10-rc.2.md,供 rc.2 重跑三渠道验证。

🤖 Generated with [Claude Code](https://github.com/claude), [CodeX](https://openai.com), [Gemini](https://github.com/apps/gemini-code-assist)
Co-Authored-By: Aurelius Huang<threefish.ai@gmail.com>
@ThreeFish-AI
ThreeFish-AI merged commit 0abae65 into feature/1.x.x Jul 4, 2026
5 checks passed
@ThreeFish-AI
ThreeFish-AI deleted the ThreeFish-AI/fix-vsce-prerelease-package branch July 4, 2026 07:52
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.

1 participant