This site is also a working example. Nothing here is clicked together in a portal.
write post ──> pull request ──> checks + preview URL ──> merge ──> live
│ │
GitHub Actions Azure Static Web Apps
- Content is Markdown, built into static pages by Hugo.
- Hosting is Azure Static Web Apps, free tier, in my own tenant.
- Infrastructure is code. The Azure resources are defined in a Bicep file. A pipeline deploys it, and shows what would change before it changes anything.
- No stored cloud passwords. The infrastructure pipeline signs in to Azure with a short-lived token GitHub issues per run (OIDC federation), scoped to one resource group.
- Nothing reaches the main branch without a pull request. Each one gets its own preview address and an automated check that blocks a post containing anything that shouldn’t be public.
The source is on GitHub.