ci(vscode): add extension CI + Marketplace publish workflows - #61
Draft
platzhersh wants to merge 1 commit into
Draft
ci(vscode): add extension CI + Marketplace publish workflows#61platzhersh wants to merge 1 commit into
platzhersh wants to merge 1 commit into
Conversation
Brings the VS Code extension under CI and makes it publishable — the last open Phase 3D item. Until now nothing built/lint/tested vscode-extension/ on PRs, and the extension wasn't packaged or published. - vscode-extension-ci.yml: path-filtered Node job (npm ci, lint, compile, unit tests, and a `vsce package` smoke test) on PRs/pushes touching vscode-extension/**; uploads the built .vsix as an artifact - vscode-extension-publish.yml: manual (workflow_dispatch) publish that packages and publishes to the VS Code Marketplace (gated on VSCE_PAT) and Open VSX (gated on OVSX_PAT), with a dry_run option. Secrets are read at job level so the step `if:` guards work; absent secret => step skipped - icon.png: 128x128 marketplace icon derived from the project logo, generated by scripts/generate-icon.py (pure stdlib, no image libraries); wired via the package.json `icon` field - .vscodeignore: stop shipping compiled tests (out/test/**) and scripts/; the packaged .vsix drops from 27 to 23 files - README: document the CI, icon generation, and manual publish flow Publishing prerequisites (maintainer, one-time): create the `platzhersh` Marketplace publisher and add VSCE_PAT (and optionally OVSX_PAT) secrets. https://claude.ai/code/session_016Lgp3PJ5ebGMVzWiddxbA5
Contributor
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Brings the VS Code extension under CI and makes it publishable — the last open Phase 3D item. Until now, nothing built/linted/tested
vscode-extension/on PRs (every prior extension PR was only validated locally), and the extension was never packaged or published.CI —
vscode-extension-ci.ymlA path-filtered Node workflow (runs only when
vscode-extension/**changes) that doesnpm ci→ lint → compile → unit tests → avsce packagesmoke test, and uploads the built.vsixas an artifact. Kept separate from the Pythonci.ymlso the toolchains don't mix.Publish —
vscode-extension-publish.ymlManual (
workflow_dispatch) publish that packages and publishes to:VSCE_PATsecretOVSX_PATsecretEach publish step is skipped if its secret is absent (secrets are read at job level so the step
if:guards actually work). Adry_runinput packages without publishing. Manual (not release-triggered) so it isn't tied to the Python semantic-release cadence and can't double-publish an unchanged version.Icon
icon.png(128×128) derived from the project logo — a rounded square with the brand blue/orange diagonal split and the two white dots fromlogo.svg. Generated byscripts/generate-icon.pyusing only the Python stdlib (no Pillow/cairosvg, since none are available), kept in-repo for reproducibility, and wired via thepackage.jsoniconfield.Packaging cleanup
.vscodeignorenow excludes compiled tests (out/test/**) andscripts/; the packaged.vsixdrops from 27 → 23 files (~41 KB).Maintainer prerequisites (one-time, can't be automated here)
To actually publish, the repo owner needs to:
platzhershpublisher on the VS Code Marketplace (and optionally Open VSX).VSCE_PATsecret (and optionallyOVSX_PAT).versioninvscode-extension/package.json, then run the publish workflow.Verification
vsce packagesucceeds locally (23 files, 41 KB, icon included).Completes Phase 3D (Marketplace publication) from PRD-0015.
https://claude.ai/code/session_016Lgp3PJ5ebGMVzWiddxbA5
Generated by Claude Code