
GitHub Actions and Azure - Deploying ARM templates with GitHub Actions
Before deploying application code, you need cloud infrastructure in place. This episode demonstrates automating Azure infrastructure provisioning using ARM templates and GitHub Actions.
What You’ll Learn
- What ARM templates (Azure Resource Manager templates) are and why they’re declarative, deterministic, and idempotent
- How ARM templates differ from imperative approaches like Azure CLI or PowerShell scripts
- ARM template structure:
schema,contentVersion,parameters,variables,resources, andoutputs - Using the
azure/arm-deployGitHub Action to deploy ARM templates from a workflow - Repository organisation: separating
source/(application code) fromtemplates/(ARM templates) - Adding the
actions/checkoutstep—and why forgetting it causes cryptic “file not found” workflow failures - Using
secureStringparameter types to protect secrets in ARM template inputs and outputs - Browsing the Azure Quickstart Templates gallery for production-ready ARM template samples
Series Context
This is the second episode in the GitHub Actions and Azure series. The infrastructure deployment workflow built here becomes the first job in the multi-job pipeline extended in the next episode to also compile and deploy application code.
Related Content

GitHub Actions and Azure - Deploying .NET Core code to Azure App Service
You have your .NET Core application code and your Azure App Service infrastructure is ready. Now it's time to wire them together with an automated GitHub Actions deployment pipeline. This episode walks through building a multi-job workflow that compiles, publishes, and deploys your .NET Core app to Azure App Service using publish profiles and GitHub Secrets.

GitHub Actions and Azure - Getting started with GitHub Actions and Azure Login
New to GitHub Actions? This episode is your starting point. Chris walks through GitHub Actions workflow fundamentals—YAML syntax, jobs, steps, GitHub-hosted runners, and secrets management—then shows how to authenticate against Azure using the Azure Login action and a service principal, before running Azure CLI commands as part of your first automated pipeline.

Deploying Azure Functions and Static Sites with GitHub Actions | Cloud with Chris
Chris walks through GitHub Actions fundamentals and demonstrates how to use them to build and deploy a multi-tenant Azure Functions API and a static frontend — both triggered automatically on push and pull request events. Using a pet project (a Yu-Gi-Oh card inventory app) as the real-world example, the session covers CI/CD concepts, workflow triggers, GitHub Secrets, publish profiles, Dependabot, and the GitHub public roadmap for upcoming Actions features like manual deployment approvals.