Add Publishing VSCE to CI + Automated Versioning to VSCE#499
Conversation
Build Metrics ReportBinary Sizes
Test Results✅ 923 passed, 1 skipped out of 924 tests in 410.5s (+3.2s vs. baseline) Test Coverage❌ 23.2% line coverage, 38.9% branch coverage · ✅ no change vs. baseline CLI Startup Time44ms median (x64, Updated 2026-05-01 18:20:16 UTC · commit |
There was a problem hiding this comment.
Pull request overview
Note
Copilot was unable to run its full agentic suite in this review.
Adds end-to-end CI/release support for publishing the WinApp VS Code extension (VSIX) to the Marketplace, plus automated post-publish version bumping and release-branch version overrides.
Changes:
- Adds VSIX artifact publishing in the build template and includes the VSIX in GitHub Release assets.
- Introduces conditional
Release_VSC(publish) andBump_VSC_Version(auto PR for patch bump) stages to the release pipeline. - Updates packaging/release scripts so the VS Code extension version is sourced/overridden from
src/winapp-VSC/package.json.
Reviewed changes
Copilot reviewed 6 out of 6 changed files in this pull request and generated 5 comments.
Show a summary per file
| File | Description |
|---|---|
| src/winapp-VSC/package.json | Adds publisher metadata needed for Marketplace publishing. |
| scripts/start-release.ps1 | Adds -VscVersion override and writes extension version to package.json on release branches. |
| scripts/package-vsc.ps1 | Uses extension package.json version as the base version for VSIX packaging. |
| scripts/build-cli.ps1 | Stops passing CLI version into VSIX packaging script (extension determines its own version). |
| .pipelines/templates/build.yaml | Copies and publishes the VSIX as a pipeline artifact. |
| .pipelines/release.yml | Adds optional VS Code Marketplace publish stage and automated version bump PR stage; uploads VSIX to GitHub Release assets. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
|
@copilot apply changes based on the comments in this thread |
Applied the unresolved review feedback in commit
|
- Create .pipelines/release-vsc.yml triggered by vsc-rel/v* branches - Remove VSC stages from .pipelines/release.yml (rel/v* trigger) - Stamp bundled CLI version into extension README during packaging - Strip git hash suffix from CLI version for clean display Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
ac306d3 to
be0156d
Compare
- Remove skipVsc parameter from build.yaml template - Remove skipVsc: true from release.yml build step - Remove VscVersion parameter and related logic from start-release.ps1 - Add start-vsc-release.ps1 for standalone VSC extension releases Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Version bumping is handled by start-vsc-release.ps1 before pushing the release branch, so the pipeline stage would duplicate it. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Allows running the pipeline to build the VSIX without publishing to the VS Code Marketplace. Set SkipPublish to false to publish. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Description
Adds end-to-end pipeline support for publishing the VS Code extension to the Marketplace, including npm
authentication via Azure Artifacts, automated post-publish version bumps, and release script support for extension
versioning.
Pipeline — release.yml
to publish
- Creates a temporary .npmrc pointing to the winapp-npm-feed Azure Artifacts feed
- Uses npmAuthenticate@0 for secure authentication (required by Microsoft security policy — no direct npm
installs)
- Installs @vscode/vsce locally and invokes via npx to ensure .npmrc auth is respected
- Uses VSCE_PAT from the vsceMarketplaceIdentity variable group
in src/winapp-VSC/package.json on main
Build template — build.yaml
packages)
Versioning fix — package-vsc.ps1 + build-cli.ps1
the extension has its own version, independent of the CLI
Release script — start-release.ps1
release branch (e.g., -VscVersion
0.2.0 for a minor bump)
the release branch before push
Related Issue
Related to #447
Type of Change
AI Description
This pull request introduces a CI pipeline to automate the publishing of the VS Code extension to the Marketplace, featuring new stages for building and publishing, and the ability to bump version numbers post-release. It also adds npm authentication via Azure Artifacts and includes compiled VSIX files as part of GitHub release assets. Users can specify the VS Code extension version during releases using the new
-VscVersionparameter instart-release.ps1.Code usage examples:
# To initiate a release with a specific version ./scripts/start-release.ps1 -VscVersion 0.2.0Breaking Change: None.