csharpfritz / csharpfritz/SquadUI
VS 2026: Separate build and publish CI/CD pipelines
- Dominant language
- TypeScript
- Stars
- 18
- Forks
- 3
- PR merge metrics
- No merged PRs in 30d
Description
## Summary
Create independent CI/CD pipelines for the Visual Studio 2026 extension. The VS 2026 extension (C#/.NET/VSIX) must have completely separate build and publish workflows from the VS Code extension (TypeScript/.vsix).
## Motivation
- Different languages and build systems (dotnet build vs npm)
- Different package formats (VSIX for VS Marketplace vs .vsix for VS Code Marketplace)
- Different marketplaces and publish tooling
- Independent release cadences — one extension shipping shouldn't block the other
- Per user directive from Jeffrey T. Fritz
## Acceptance Criteria
- [ ] GitHub Actions workflow for **building** the VS 2026 extension on PR and push
- Runs `dotnet build` / `dotnet test` for the `vs2026/` project
- Only triggers on changes to `vs2026/**` paths
- Matrix: Windows (required), optionally Linux for service-layer unit tests
- [ ] GitHub Actions workflow for **publishing** the VS 2026 extension
- Triggers on tag push (e.g., `vs2026-v*`) or manual dispatch
- Builds release VSIX package
- Publishes to Visual Studio Marketplace
- Creates GitHub release with VSIX artifact attached
- [ ] Existing VS Code CI workflows remain untouched
- [ ] Path filters ensure VS Code changes don't trigger VS 2026 builds and vice versa
- [ ] Build status badges in README for both extensions
## Implementation Details
### Build Workflow (`.github/workflows/vs2026-build.yml`)
- **Trigger:** `push` and `pull_request` on `vs2026/**` paths
- **Steps:** checkout → setup-dotnet → restore → build → test → upload VSIX artifact
- **Matrix:** `os: [windows-latest]` (VS extensions require Windows for full VSIX packaging)
### Publish Workflow (`.github/workflows/vs2026-publish.yml`)
- **Trigger:** tag `vs2026-v*` or `workflow_dispatch`
- **Steps:** checkout → setup-dotnet → build Release → package VSIX → publish to VS Marketplace → create GitHub release
- **Secrets needed:** `VS_MARKETPLACE_PAT` (separate from any VS Code marketplace token)
### Path Isolation
```yaml
# vs2026-build.yml
on:
push:
paths: ['vs2026/**']
pull_request:
paths: ['vs2026/**']
# Existing VS Code workflows should add path exclusions if not already filtered
```
## Dependencies
- #43 (VS 2026 project scaffold must exist before CI can build it)
## Size: M
## Routing
Assigned to **squad:livingston** (DevOps/CI)
Contributor guide
No contributing guide indexed for this repository
Assessment
This issue has not been assessed yet.