---
title: GitHub Actions and Azure - Deploying .NET Core code to Azure App Service
date: 2020-12-02
abstract: 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.
tags: GitHub, GitHub Actions, DevOps, CI/CD, .NET, Azure, Infrastructure as Code, Automation
author: Chris Reddington
canonical_url: https://chrisreddington.com/video/github-actions-deploy-to-appservice/
---


You have your .NET Core application code and your Azure App Service infrastructure is ready. Now it's time to wire them together with a fully automated GitHub Actions deployment pipeline.

## What You'll Learn

- How to structure a **multi-job GitHub Actions workflow** that separates infrastructure deployment from application deployment
- Setting up the **Azure Web App Deploy** action for .NET Core applications
- Using **GitHub Secrets** to securely store Azure publish profiles
- Configuring `dotnet build` and `dotnet publish` steps within a workflow job
- Troubleshooting common YAML indentation and path errors in GitHub Actions pipelines
- How ARM template **idempotency** means the infrastructure job runs safely on every commit with no unintended changes

## Workflow Structure

The pipeline demonstrated here follows a two-stage pattern:

1. **Deploy Infrastructure** — runs the ARM template against Azure (idempotent)
2. **Build and Deploy Application** — compiles .NET Core code and publishes to Azure App Service

This is the third episode in the GitHub Actions and Azure series, building directly on the ARM template deployment workflow from the previous episode.
