Use your own Azure subscription. Confirm that Azure CLI has selected your subscription and that you have a budget, a suitable region, a dedicated workshop resource group, Contributor access, and an OIDC identity configured for your own GitHub fork. No Azure account, subscription, or preconfigured environment is supplied. Container Apps, ACR, logs, storage, and the SRE Agent may incur charges billed to your subscription. Do not use production resources. Review the setup guidance and cleanup checklist before creating anything.
Goal#
Deploy the full Octocat Supply application to Microsoft Azure using Infrastructure as Code (IaC) and a GitHub Actions CI/CD pipeline. The deployment should be automated, repeatable, defined as code, and driven from GitHub Actions.
Actions#
- Choose your IaC — Define the Azure infrastructure using an IaC approach (e.g. Bicep or Terraform) for the resources the app needs: compute for frontend/API, storage/database, and supporting services.
- Author the templates — Use Copilot to help generate and refine the IaC, following Azure best practices.
- Build the pipeline — Create a GitHub Actions workflow that builds, tests, provisions infrastructure, and deploys the frontend and API.
- Configure securely — Use GitHub secrets / OIDC federated credentials for Azure authentication; avoid hard-coded credentials.
- Deploy and verify — Run the pipeline and confirm the application is reachable in Azure.
Optional starter scaffold (included in this folder).
infra/(Bicep) — bundled here — plus the inactive.github/workflows/deploy.yml.examplesketch a Container Apps + ACR + OIDC topology so you don't start from a blank page. The meaningful design choices — SKUs, database/storage strategy, API ingress visibility, secrets, scaling — are intentionally left asTODOs. It removes boilerplate; it does not do the challenge for you. In your own fork, finish and review the example before copying it todeploy.yml. The separatepages.ymlpublishes only this guide; it does not deploy the app or authenticate to Azure. Seeinfra/README.md.