Skip to content

feat(release): VSIX on GitHub Release + actually publish to Marketplace#163

Merged
avrabe merged 1 commit intomainfrom
feat/vscode-release-and-marketplace
Apr 22, 2026
Merged

feat(release): VSIX on GitHub Release + actually publish to Marketplace#163
avrabe merged 1 commit intomainfrom
feat/vscode-release-and-marketplace

Conversation

@avrabe
Copy link
Copy Markdown
Contributor

@avrabe avrabe commented Apr 21, 2026

Two bugs in the VS Code extension release flow

Bug 1 — VSIX wasn't on the GitHub Release page

`build-vsix` in ci.yml uploaded the VSIX as a workflow artifact only. Users who wanted to sideload the extension had to dig through the Actions tab. Should be on the Release page with the binaries.

Bug 2 — Marketplace publish never actually ran

`publish-vsix` was gated on `needs: [build-vsix, release-results]`. `release-results` doesn't exist as a job in ci.yml — it lives in release.yml, a separate workflow. GitHub Actions can't express cross-workflow job dependencies, so the publish job was never scheduled on any tag. This is why only the spar extension currently appears on the VS Code Marketplace — rivet's has never actually shipped, despite the YAML pretending to publish.

Fix

Move both jobs to `release.yml` where they belong:

  • `build-vsix` runs alongside `build-binaries`
  • `create-release` now depends on build-vsix and globs `*.vsix` in the asset collection step → VSIX attaches to the GH Release
  • New `publish-vsix-marketplace` runs after create-release so the VSIX is guaranteed on the Release page even if Marketplace publish fails
  • If `VSCE_PAT` secret is missing, emits a `::warning::` instead of silently skipping — the silent-skip is exactly what hid Bug 2

Also bumps `vscode-rivet/package.json` 0.3.0 → 0.4.0 to match the workspace.

Post-merge checklist for the repo admin

  • Configure `VSCE_PAT` in repo settings → Secrets → Actions. PAT needs Marketplace > Manage scope on Azure DevOps. Without it the extension will still attach to the Release but won't reach the Marketplace.

Test plan

  • `yamllint` on both workflow files
  • Next tag push exercises the full flow

🤖 Generated with Claude Code

Copy link
Copy Markdown

@github-actions github-actions Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'Rivet Criterion Benchmarks'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.20.

Benchmark suite Current: 26358c8 Previous: d143663 Ratio
validate/10000 11978633 ns/iter (± 1072855) 9752049 ns/iter (± 334330) 1.23

This comment was automatically generated by workflow using github-action-benchmark.

@avrabe avrabe force-pushed the feat/vscode-release-and-marketplace branch 7 times, most recently from 1dd126c to 765ef32 Compare April 22, 2026 04:20
Two related bugs in the VS Code extension release flow:

1. **VSIX wasn't attached to the GitHub Release.** The `build-vsix` job
   in ci.yml ran on tag push and uploaded the VSIX as a workflow artifact
   only — users couldn't download it from the Release page, they had to
   dig through the Actions tab.

2. **`publish-vsix` never actually ran on Marketplace.** It was gated on
   `needs: [build-vsix, release-results]`, but `release-results` doesn't
   exist as a job in ci.yml (it lives in release.yml, a separate
   workflow — GitHub Actions workflows can't depend on each other's
   jobs). Result: the Marketplace publish job was never scheduled on
   any tag, which is why only the spar extension currently appears on
   the Marketplace — rivet's has never actually shipped.

**Fix:** move both jobs into release.yml where they belong, wire them
into the existing tag-triggered pipeline:

- `build-vsix` → runs alongside `build-binaries`
- `create-release` → now depends on build-vsix too, and globs `*.vsix`
  in the asset collection step so the VSIX attaches to the Release
- `publish-vsix-marketplace` → runs after create-release so the VSIX
  is guaranteed on the Release page even if Marketplace publish fails.
  Now prints a `::warning::` if VSCE_PAT is unset instead of silently
  skipping, which is what hid the "extension isn't on Marketplace" bug
  in the first place.

Also bumps `vscode-rivet/package.json` version from 0.3.0 → 0.4.0 so
the next released extension matches the workspace version.

**Follow-up for the user:** configure the VSCE_PAT secret in the rivet
repo settings (Azure DevOps PAT with Marketplace > Manage scope).
Without it the warning will continue to fire on every release until
configured.

Trace: skip
@avrabe avrabe force-pushed the feat/vscode-release-and-marketplace branch from 765ef32 to 26358c8 Compare April 22, 2026 04:21
@avrabe avrabe merged commit deeafeb into main Apr 22, 2026
1 check passed
@avrabe avrabe deleted the feat/vscode-release-and-marketplace branch April 22, 2026 04:21
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