Great CICD Workflows

Written: June 5, 2024

What Is CICD?

CI/CD or Continuous Integration and Continuous Delivery is a set of best practices for releasing software. I have personally implemented these types of practices on nearly every project at every job. This article is for anyone who writes software, not just "ops" practitioners. 

Continuous Integration

Continuous integration is the process of merging separate branches of code from different authors together regularly to avoid massive merge conflicts and debugging sessions that occur from stockpiling commits. These giant merges typically occur just before a release which is not the ideal time for this activity.

Continuous Delivery

Similarly, continuous delivery works to avoid a situation where code accumulates in version control without ever being deployed. While CI prevents issues from conflicting developer logic, CD prevents issues from conflicting deployment environments and untested upgrade procedures. There's a well-known book on the subject of the same name.

What Is A CICD Workflow?

A CI/CD workflow is a series of steps specific to your project's configuration that outlines when and how often to merge or deploy code, from which branches or artifacts, to which branches or target environments, and with whose approval. A CI/CD workflow does not need to be automated to be "CI/CD" as the continuity is more about the unbroken flow of developer work moving into production. Arguably, teams would have more success focusing on this aim first and opting for automation only when a portion of the process becomes stable and predictable (not just tedious). 

Making Great CICD Workflows

Here are a few of the key considerations:

Stay Tuned!

That's all for now but I'll be sure to have more soon. My goal is to get into the details of each of the major considerations, some examples of basic and complex workflows, and some personal experience writing them. 

Did you find this useful?