Deploying Azure Functions and Static Sites with GitHub Actions | Cloud with Chris

Deploying Azure Functions and Static Sites with GitHub Actions | Cloud with Chris

2020-10-02

Chris uses a real side-project — a multi-tenant card inventory app — to demonstrate GitHub Actions from first principles through to a working CI/CD pipeline.

GitHub Actions Fundamentals

The session opens with a clear explanation of what GitHub Actions are and why they are called workflows rather than pipelines: Actions are not limited to CI/CD and can respond to any GitHub event, including issue comments, new contributors, and dependency alerts. Core concepts covered include:

  • Continuous Integration (CI): automatically building and testing code on every push or pull request to catch merge conflicts and regressions early
  • Continuous Delivery (CD): automatically deploying verified builds to target environments
  • Workflow triggers: push vs pull_request events, filtered by branch (master) and path patterns

Deploying Azure Functions (.NET)

Chris walks through the workflow files for his card API microservices, showing:

  • Using the Azure Functions GitHub Action with a publish profile stored as a GitHub Secret
  • Separate workflow files for PR validation (deploy to catch breakage) vs. master push (deploy to production)
  • Downloading the publish profile from the Azure portal and storing it securely in repository secrets

Deploying a Static Frontend

A second workflow demonstrates a multi-job pipeline for the static frontend:

  • Job 1: npm install, npm run build with environment-variable configuration (API base URI, search keys), then upload artifact
  • Job 2: download artifact, then deploy to Azure using the Azure CLI login action
  • Running on Linux (ubuntu-latest) vs. Windows for the .NET jobs

Dependabot and the GitHub Roadmap

The session closes with a live demo of Dependabot automatically raising a pull request for an outdated dependency, triggering the PR workflow, and Chris merging it after watching the deployment succeed in real time. The GitHub public roadmap (github.com/github/roadmap) is shown as a resource for tracking upcoming features — including manual approval gates for production deployments.

Related Content

3 - DevOps in a Cloud World

3 - DevOps in a Cloud World

2020-03-29

DevOps is the union of people, process, and products to enable the continuous delivery of value to end users — not just code or features. In this episode, Abel Wang, Principal Developer Advocate and DevOps Lead at Microsoft, joins Chris to cover the foundations of DevOps, telemetry-driven development, database DevOps, feature flags, Site Reliability Engineering, and the importance of shifting left on quality and security.

7 - Creating Cloud with Chris

7 - Creating Cloud with Chris

2020-05-24

Ever wondered what goes into building a technical podcast from scratch? In this behind-the-scenes episode, the tables are turned as colleague Fletcher Kelly interviews Chris Reddington about the creation of Cloud with Chris. Topics include choosing a podcast theme, microphone selection, post-production with Audacity, using Azure Cognitive Services for automated transcription, designing for accessibility from day one, and automating the Hugo-based website with CI/CD pipelines. A candid look at the content creation journey behind a technical podcast.

Deploying a multi-region Serverless API Layer (Part 1)

2019-07-13 · 4 min

In my spare time, I work on a pet project called Theatreers. The aim of this is a microservice based platform focused on Theatre / Musical Theatre (bringing a few of my passion areas together). I've recently re-architected the project to align to a multi-region serverless technology stack.