Repository navigation
feat(release): tag-driven release flow - #343
Merged
Merged
Conversation
Move the PR and main-push CI out of github-release.yml into its own 'Run tests' workflow, keeping the Fetch Docs and Web Assets and Build and Test VSIX job and check names. github-release.yml becomes tag-triggered only for now, so tag releases keep working until the release workflow is rewritten.
Rewrite github-release.yml as the release-only workflow driven by version tags, with the release logic in a tested PowerShell module (.github/release-flow.psm1, .github/release-flow/, .github/release-flow.ps1). - Add the assertion harness (.github/test-release-flow.ps1, .github/test-release-flow/) and a make test-release-flow target. - Add .github/release.yml for generated release notes categories and .github/RELEASING.md describing the flow. - Add .github/migrate-changelog-to-releases.ps1 to migrate the retired CHANGELOG.md history into GitHub releases. - Add BUMP support to tag-test-release.ps1. - Remove the retired validate-test-release-tag.ps1 and write-test-release-notes.ps1 scripts. - Update README.md and SETUP.md. vsix-publish.yml is intentionally kept for now.
|
Caution Review failedThe pull request is closed.
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The publishing Azure federated credential already matches any subject under repo:codescene-oss/codescene-vs:* and is pinned by repository and owner ID, so tag and dispatch runs can log in without a dedicated environment subject. Document that in RELEASING.md.
There was a problem hiding this comment.
Gates Passed
4 Quality Gates Passed
See analysis details in CodeScene
Quality Gate Profile: Clean Code Collective
Install CodeScene MCP: safeguard and uplift AI-generated code. Catch issues early with our IDE extension and CLI tool.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adopts the tag-driven release flow of codescene-mcp-server / codescene-vscode PR #385 for the Visual Studio extension. A stable release is now cut by pushing an annotated
vX.Y.Ztag on a green PR merge commit onmain; no version, changelog or release-notes edits are made beforehand.This branch carries three commits: the earlier removal of
CHANGELOG.mdandrelease.ps1, the split of PR/main CI intotest.yml, and the feature commit below.What the feature commit does
.github/workflows/github-release.ymlas the release-only workflow. Stable tags run: resolve metadata, build VSIX, create release (not latest), upload assets, verify tests passed, publish to the Visual Studio Marketplace, record the released version onmain, and finally mark the release as latest. Test tags (vX.Y.Z-test.<sha>) stop after upload. Aworkflow_dispatchdry_runmode exercises metadata and the publish step without creating anything..github/release-flow.psm1,.github/release-flow/, entry script.github/release-flow.ps1) so it can be tested..github/test-release-flow.ps1,.github/test-release-flow/) and amake test-release-flowtarget, which runs under both PowerShell 7 and Windows PowerShell 5.1 and is included inmake iter..github/release.yml(generated release-notes categories by label) and.github/RELEASING.md(the runbook)..github/migrate-changelog-to-releases.ps1to migrate the retiredCHANGELOG.mdhistory into GitHub releases.BUMPsupport totag-test-release.ps1and removes the retiredvalidate-test-release-tag.ps1andwrite-test-release-notes.ps1.README.mdandSETUP.md.Reviewer notes
Run testsrun for the tagged commit. Tags must point at the PR merge commit, never at thechore(release): set version to ...bot commit, because pushes made withGITHUB_TOKENstart no workflow and that commit has no test run.github-releaseconcurrency group; queued runs are kept, not cancelled.vsix-publish.ymlis intentionally kept in this PR. It will be removed in a follow-up once the Azure dry-run proves the new publish path.Test coverage
make test-release-flowruns the assertion harness (admission, changelog, dispatch rules, release selection, version files/record, GitHub command construction, Marketplace publish, migration script, tag scripts, entry script) under pwsh and powershell.exe.Developer-owned steps (not done by this PR)
No Azure credential change is needed: the existing federated credential matches
repo:codescene-oss/codescene-vs:*and is pinned by repository and owner ID.dry_runworkflow dispatch to prove the Marketplace publish path.vsix-publish.ymlafter the dry-run proof.--apply, by a maintainer..github/release.yml.🤖 Generated with Claude Code