[Blocker] Deploy through a staging slot with smoke test, rollback and OIDC
Nobody has claimed this yet.
- Dominant language
- HTML
- Stars
- 10
- Forks
- 0
- Avg merge
- 2h 52m
- Merged PRs (30d)
- 20
Description
Tier 1 — release blocker
Problem
Production deploys are single-shot: the package goes straight to the live site with no staging slot, no smoke test, no rollback path, and authentication uses a long-lived publish-profile secret rather than federated (OIDC) credentials.
Evidence
.github/workflows/azure-app-service.yml:98-103—azure/webapps-deploywithpublish-profile: ${{ secrets.AZURE_WEBAPP_PUBLISH_PROFILE }}
Proposed fix
- Deploy to a
stagingslot. - Smoke test the slot (
/healthz, plus one authenticated page render). - Swap slots on success; leave the slot in place for instant rollback.
- Replace the publish profile with
azure/loginusing OIDC federated credentials and delete the secret.
Acceptance criteria
- Deploys land on a slot first and swap only after the smoke test passes
- Rollback is a slot swap, not a redeploy
- No long-lived Azure credential in repository secrets
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with .github/workflows/azure-app-service.yml:98-103 and trace the current Azure App Service deployment workflow. Check how the staging slot, /healthz smoke test, authenticated page render, slot swap, rollback path, and OIDC login fit together. Done means deployments test a slot before swapping, rollback uses a swap, and no long-lived Azure credential remains in repository secrets.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- azure, github-actions
- Domain
- ci-cd, cloud, devops, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100