Skip to content

Add VS Code extension release workflow#7

Open
sdairs wants to merge 2 commits intoClickHouse:mainfrom
sdairs:ci/vscode-release-workflow
Open

Add VS Code extension release workflow#7
sdairs wants to merge 2 commits intoClickHouse:mainfrom
sdairs:ci/vscode-release-workflow

Conversation

@sdairs
Copy link
Copy Markdown
Contributor

@sdairs sdairs commented Apr 5, 2026

Summary

  • Adds release-vscode.yml GitHub Actions workflow that builds platform-specific .vsix packages with the clickhouse-lsp binary bundled inside (rust-analyzer pattern)
  • Builds for 6 platforms: linux-x64, linux-arm64, darwin-x64, darwin-arm64, win32-x64, win32-arm64
  • Updates the extension to prefer the bundled server binary before falling back to $PATH
  • Publishes to VS Code Marketplace, Open VSX, and GitHub Releases on version tags (v*)
  • Can also be triggered manually via workflow_dispatch
  • All releases are marked as pre-release (--pre-release flag) so they show an experimental badge on the Marketplace. Remove the flag from the workflow when ready for stable releases.
  • Adds a marketplace README (packages/vscode/README.md) with a prominent experimental warning

How it works

  1. Build job (matrix): Compiles clickhouse-lsp for each target, copies it into packages/vscode/server/, builds the TypeScript extension, packages a platform-specific .vsix via vsce package --pre-release --target
  2. Publish job: Downloads all .vsix artifacts and publishes to VS Code Marketplace (requires VSCE_PAT secret) and optionally Open VSX (OVSX_PAT secret)
  3. Release job: Creates a GitHub Release with all .vsix files attached

Setup required

  • Add VSCE_PAT secret (VS Code Marketplace personal access token)
  • Optionally add OVSX_PAT secret for Open VSX publishing
  • To release: push a tag like git tag v0.1.0 && git push --tags

Test plan

  • Trigger workflow manually via workflow_dispatch (without publish) to verify builds succeed
  • Verify .vsix artifacts are produced for all 6 platforms
  • Install a built .vsix locally and confirm the bundled LSP server starts
  • Verify serverPath setting still overrides the bundled binary
  • Confirm pre-release badge appears on the Marketplace listing

🤖 Generated with Claude Code

sdairs and others added 2 commits April 5, 2026 19:51
Adds a GitHub Actions workflow (release-vscode.yml) that builds
platform-specific .vsix packages with the clickhouse-lsp binary
bundled inside, following the rust-analyzer pattern. Triggered by
version tags (v*) or manual dispatch.

Platforms: linux-x64, linux-arm64, darwin-x64, darwin-arm64,
win32-x64, win32-arm64.

Also updates the extension to prefer the bundled server binary
before falling back to $PATH lookup.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Add --pre-release flag to vsce package/publish so all releases
  show as experimental in the VS Code Marketplace
- Add packages/vscode/README.md for the marketplace page, with
  a prominent experimental warning banner
- Bump engines.vscode to ^1.80.0

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.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