This tutorial walks you through setting up a continuous delivery pipeline from scratch. This guide is for people that want to learn continuous delivery concepts by practicing.
Continuous delivery playground is optimized for learning, which means taking the long route to ensure you understand each of the concepts behind a modern continuous delivery pipeline.
The target audience is someone new to CI/CD trying to get hands-on experience implementing a modern continuous delivery pipeline. We have also used this tutorial to facilitate remote workshops with bootcamps that want to introduce CI/CD concepts to their students.
These are the bootcamps we collaborated with so far:
Following a series of labs, we will build a continuous deployment pipeline where every step is automated. Each lab introduces a new CI/CD concept and implements a new step of the pipeline. The first few labs are focused on understanding the tools and how to create pipelines in Github Actions. If you complete all the labs, you will have a working pipeline and a good foundation on how to apply CI/CD principles and practices to your projects.
The results of this tutorial should not be viewed as production ready, but don't let that stop you from learning!
By the end of each of the labs you will learn one continuous delivery concept and implement it in a working CD pipeline using Github Actions. While Github Actions is used for implementing a CD pipeline, the lessons learned in this tutorial can be applied to other platforms.
The stack:
- NPM as build tool
- Next.js to create the fake application to deploy
- Github Actions as CI/CD platform
- Fork this repository. If you are new to Github, you can learn how to fork here.
- Make sure you review the pre-requisites section to see if you have everything we need installed.
- If you are new to NPM and Node.js, start by lab 1, otherwise you can start directly in lab 2.
- Prerequisites
- Lab 1 - Local development workflow
- Lab 2 - Creating a hello world pipeline
- Lab 3 - Continuous integration: Testing the application
- Lab 4 - Continuous integration: Building and packaging the application
- Lab 5 - Continuous delivery: Deploying the application to an environment
- Lab 6 - Continuous delivery: Adding a smoke test