ci: GitHub Actions release pipeline — build & publish .vsix on merge to main - #226
Conversation
…al state Introduces IWorkspaceConfigReader seam so Configuration and Ctrl can be constructed without a live vscode.WorkspaceConfiguration. Blocked by #198.
7-step plan: IWorkspaceConfigReader interface → Configuration/Ctrl constructor update → FakeWorkspaceConfig test double → refactor 14 test files to eliminate config.update/ConfigurationTarget. Blocked by #198.
Builds and publishes .vsix to a GitHub Release on every merge to main. Full build + test gate runs before packaging — no release on failure. Version read from package.json; release tagged v<version>. Build steps intentionally duplicate ci.yml (no composite action). Acceptable at this scale; extract reusable workflow if steps diverge. softprops/action-gh-release pinned to SHA (3bb1273) to avoid floating-v2 risk. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Brooks-Lint ReviewMode: PR Review The PR faithfully implements the release pipeline as per the approved plan and includes thorough documentation for upcoming decoupling tasks. Findings🟢 SuggestionDependency Disorder — Verification of commit SHA for softprops/action-gh-release SummaryThe implementation of the release pipeline is "Deep" and strategically sound. By pinning the release action to a specific SHA and maintaining a single-job gate, the PR preserves "Conceptual Integrity" while addressing the sustainability concerns raised during the plan review. The addition of specs for issue #202 shows excellent proactive planning for reducing tech debt. |
Summary
.github/workflows/release.ymltriggered on push tomaincompile→compile-tests→xvfb-run npm test) before packagingpackage.json, tags releasev<version>, attaches.vsixas assetsoftprops/action-gh-releasepinned to SHA3bb1273(reviewed: floatingv2risk noted in plan)References
docs/specs/2026-05-19-225-release-pipeline.mddocs/plans/2026-05-19-225-release-pipeline.mdTest plan
main→ Actions tab showsReleaseworkflow run → GitHub Releasev<version>created with.vsixattacheddevelop→Releaseworkflow does NOT trigger (onlyCItriggers)🤖 Generated with Claude Code