Skip to content

ci(Publish): 门控 VS Code Marketplace 自动发布以消除 deployments 报错 - #32

Merged
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/disable-marketplace-publish
Jun 29, 2026
Merged

ci(Publish): 门控 VS Code Marketplace 自动发布以消除 deployments 报错#32
ThreeFish-AI merged 1 commit into
feature/1.x.xfrom
ThreeFish-AI/disable-marketplace-publish

Conversation

@ThreeFish-AI

Copy link
Copy Markdown
Owner

背景

仓库 /deployments 页面持续报错。由于 VS Code Marketplace 发布凭证(VSCE_PAT)尚未配置,每次推送 v* tag 触发的 publish job 会在 vsce publish 步骤鉴权失败,进而中断整个 job。该 job 声明了 environment: production,因此每次失败都会在 /deployments 页留下一条 error 状态的 deployment 记录。

根因

.github/workflows/ci.ymlpublish job 中,「发布到 VS Code Marketplace」步骤排在「发布到 OpenVSX」之前且无 continue-on-error。Marketplace 步骤鉴权失败后整个 job 中止,OpenVSX 步骤也无从执行,production deployment 被标记为 error。

改动

  • 门控 Marketplace 步骤:为「发布到 VS Code Marketplace」步骤增加仓库级特性开关 if: ${{ vars.ENABLE_MARKETPLACE_PUBLISH == 'true' }}。变量未设置时其值为空串,条件为假 → 步骤显示为 skipped(而非 failed),不致 job 失败。
  • OpenVSX 保持不变ovsx publish 步骤继续无条件发布,Cursor / Windsurf 等 AI IDE 用户的安装来源不中断。
  • 同步注释与文档:更新 publish job 注释;在 docs/research/04-publishing-cicd.md 增设 §3.2.2,说明该特性开关、OpenVSX 不受影响及历史 deployment 清理方式。

效果

Marketplace 步骤被跳过后,job 直接执行 OpenVSX 步骤;只要 OVSX_PAT 已配置且发布成功,production deployment 即由红转绿,报错消除。github-release(附带 .vsix 供本地安装)不受影响,正常产出。

日后恢复(零代码)

取得 Azure DevOps PAT 后,在仓库 Settings → Secrets and variables → Actions

  1. 配置 Secret VSCE_PAT
  2. 新增 Variable ENABLE_MARKETPLACE_PUBLISH=true

即恢复 Marketplace 自动发布,无需改动 workflow 或再发 PR

前提与注意

  • 本方案消除报错的前提是 OpenVSX 步骤能成功OVSX_PAT 已配置且 open-vsx.org 命名空间有效)。若 OVSX_PAT 也未配置,OpenVSX 步骤会失败、production deployment 仍会标红——届时需改为在 job 层门控以整体跳过该 job。
  • 本改动仅阻止「未来」的失败 deployment;/deployments 上已有的历史失败记录不会自动消失,如需清空可在 Settings → Environments → production 删除该环境(会一并清除其 deployment 历史,下次发布按 environment: production 自动重建),或经 REST API 逐条删除。

验证

  • 已用 Ruby 内置 YAML 解析校验 ci.yml 语法合法;确认 Marketplace 步骤 if 条件生效、OpenVSX 步骤保持无条件执行。
  • 端到端验证需在合入后、下次推送 v*(或测试性 rc)tag 时观察:Marketplace 步骤 skipped、OpenVSX 正常执行、production deployment 转绿。

🤖 Generated with Claude Code

未配置 VSCE_PAT 时, publish job 的 vsce 发布步骤鉴权失败会中断整个 job; 因该 job 挂 environment: production, 导致仓库 /deployments 页持续产生 error 状态的 deployment 记录。

改为用仓库变量 ENABLE_MARKETPLACE_PUBLISH 门控该步骤 (默认未设即 skipped, 不致 job 失败), OpenVSX 发布步骤保持无条件执行; 日后配好 VSCE_PAT 后, 在仓库 Variables 设 ENABLE_MARKETPLACE_PUBLISH=true 即恢复, 无需改代码或发 PR。

同步在 docs/research/04-publishing-cicd.md 增设 3.2.2 节, 说明该特性开关、OpenVSX 不受影响及历史 deployment 清理方式。

🤖 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 0554484 into feature/1.x.x Jun 29, 2026
5 checks passed
@ThreeFish-AI
ThreeFish-AI deleted the ThreeFish-AI/disable-marketplace-publish branch June 29, 2026 15:33
ThreeFish-AI added a commit that referenced this pull request Jun 29, 2026
同步 #31(Branches 视图多选 + 批量删除/复制/收藏)与 #32(门控 Marketplace 自动发布以消除 deployments 报错);解决 CHANGELOG.md [Unreleased] 区段冲突——按 Keep a Changelog 顺序保留双条目(### Added → ### Changed)。

🤖 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>
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