-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Background
Today our release flow is split between two ADO pipelines:
publish.ymlruns on a schedule, uses Beachball to bump versions, generates.tgzpackages, publishes them directly to npmjs.com, and creates NuGet packages.- After that completes,
release.ymlpushes the NuGet packages to nuget.org.
Because publish.yml commits the version bumps straight to main, we have to keep rotating a PAT with force-push rights. This bypasses branch protection and is increasingly out of line with SDL expectations.
Proposal
Move the version bump and release prep into a scheduled pipeline that raises a release PR, and only build/publish artifacts once the PR merges:
-
Add
prepare-release.yml(same cadence as today’spublish.yml):- Run
beachball bumpto update package versions/changelogs and commit them to arelease_request/<date>branch. - Generate the release manifest and open/update a PR targeting
mainor the corresponding release branch.
- Run
-
When the PR merges, run the existing
publish.yml:- Build the repo and create npm
.tgzplus NuGet artifacts, but do not push to registries yet.
- Build the repo and create npm
-
Finally, let
release.ymlpublish those artifacts to npmjs.com and nuget.org.
This keeps all commits to main and other release branches going through protected PRs, removes our dependency on elevated PATs, and aligns the release flow with SDL guidance.