Skip to content

Add admin-gated Release workflow - #610

Draft
MaddyMicrosoft wants to merge 4 commits into
masterfrom
ci/automate-release
Draft

Add admin-gated Release workflow#610
MaddyMicrosoft wants to merge 4 commits into
masterfrom
ci/automate-release

Conversation

@MaddyMicrosoft

Copy link
Copy Markdown
Member

Reproduces the Azure Login Action release runbook as a manually dispatched workflow: checkout master, build, test, commit the built lib/ to a releases/vX.Y.Z branch, tag that commit, force-move the major tag (e.g. v3), and publish a GitHub Release.

Admin-only is enforced two ways:

  • environment: release, which pauses the run until a required reviewer (admin) approves. This is the primary gate and must be configured with required reviewers in repo settings before the first real release.
  • an 'Ensure triggered by an admin' step that fails fast for non-admins.

Actions are pinned to Nathan Basanese (@v6) to match the rest of the repo.

MaddyMicrosoft and others added 2 commits August 17, 2026 09:04
Reproduces the Azure Login Action release runbook as a manually
dispatched workflow: checkout master, build, test, commit the built
lib/ to a releases/vX.Y.Z branch, tag that commit, force-move the major
tag (e.g. v3), and publish a GitHub Release.

Admin-only is enforced two ways:
- environment: release, which pauses the run until a required reviewer
  (admin) approves. This is the primary gate and must be configured with
  required reviewers in repo settings before the first real release.
- an 'Ensure triggered by an admin' step that fails fast for non-admins.

Actions are pinned to @v6 to match the rest of the repo.
Undo a bad release by re-pointing the major tag (e.g. v3) back to a
known-good, already-published version tag. This is the fast
consumer-facing fix: anyone on azure/login@v3 recovers immediately.

- Admin-gated the same two ways as release.yml: environment: release
  approval plus an actor-admin check.
- Shares the 'release' concurrency group so a rollback can never race an
  in-flight release (both push the same major tag).
- Verifies the target tag exists and carries both built entry points
  (lib/main/index.js and lib/cleanup/index.js) before moving the major
  tag, so it can never point consumers at unbuilt code.
- Optionally resets the 'Latest' release badge; tolerates a missing
  Release object so a cosmetic badge failure never fails a successful
  tag rollback.
- Does NOT delete the bad tag/branch/release (someone may have pinned the
  exact version); left as a deliberate manual step.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
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