GitHub Actions can be used for Continuous Deployment (CD) - but there are some rough edges. In this post I take you through a deep dive and lift the k

Deployment with GitHub Actions: The Bad and the Ugly

submited by
Style Pass
2021-07-07 18:00:10

GitHub Actions can be used for Continuous Deployment (CD) - but there are some rough edges. In this post I take you through a deep dive and lift the kimono on Actions.

Why start with disclaimers? Because (SPOILER ALERT) deployment with GitHub Actions is rough. Unfortunately, not even enough "good" to add "The Good" to the title of this post.

Ever since Actions was born, the vision has been "code to cloud". This vision is exactly correct and certainly demos nicely if you have a simple web app and a single environment. But how do you handle a more complex real-world scenario? How do you deploy and configure infrastructure? How do you model multiple environments? Where do you store secrets and environment settings? How do you handle approvals?

At GitHub Universe in December 2020, GitHub released Environments to Beta. This was the first baby step in moving towards a more "enterprise" deployment capability.

I've made a few Actions workflows and have always approached it as a slightly differently formatted Azure Pipeline that can only have jobs (no stages or environments). So when Actions Environments got released, I thought I'd approach Actions with the same paradigm I use when I create Pipelines.

Leave a Comment