Welcome! This tutorial will guide you through the process of setting up a deployment pipeline with Github Actions from scratch, and help you grasp continuous integration and continuous delivery concepts (CI/CD) in practice.
Each lab introduces a new CI/CD concept and adds a new step to the pipeline. The initial labs will help you understand the tools and how to create a pipeline using Github Actions. By completing all the labs, you'll have a fully functional pipeline and a strong foundation in applying CI/CD principles to your projects.
Β Β
This tutorial is designed for programming students and junior developers or beginners in CI/CD, who want to learn by doing and understand continuous delivery concepts and pipeline automation through hands-on practice.
You don't need to have any previous experience in CI/CD but basic knowledge of Github commands is recommended.
Β Β
This application is a React-Application bootstrapped with Create React App and tested with React Testing Library.
This is how the application -that we will deploy on a production environment (Firebase)- looks like:

Description | Command |
---|---|
Installs all the dependencies listed in package.json | npm install |
Builds the app for production to the build folder |
npm run build |
Starts the app by deploying it locally in dev mode | npm start |
Runs the tests for the application | npm test |
Β Β
- Anything you need for this workshop is contained within this repository - so the first thing you need to do is get a copy of it! If you are new to Github, you can learn how to fork it and clone it here
- Make sure you start by the Prerequisites section to make sure that you have everything we need installed
- Run and build the React application following the instructions to setup your application locally (lab 1)
- Understand the basic use of GitHub Actions by creating your first pipeline (lab 2)
- Continue by creating a set of GitHub Actions workflows in order to test (lab3), release (lab 4) and deploy (lab 5) the application with Firebase!
These are the steps you can follow to complete this workshop (order is important):
- 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 Firebase
Β Β
Β Β
What is a pipeline?
A pipeline is a broad term referring to the entire automated process of software development, from version control to production.
What is continous integration?
Continuous Integration is a software development practice where members of a team integrate their work frequently, usually each person integrates at least daily - leading to multiple integrations per day.
What is continous delivery?
Continuous delivery is a software development practice where code changes are automatically prepared for a release to production and other environments, after passing automated tests and quality checks.
What are the differences between continuous integration vs. delivery vs. deployment?
What is continuous testing?
Continuous testing is the strategy of consistently running tests, both manual and automated ones, throughout the entire delivery process. The objective is to detect issues early, ensuring problems are identified as soon as possible.
What is Github Actions?
GitHub Actions brings automation directly into the software development lifecycle on GitHub via event-driven triggers. These triggers are specified events that can range from creating a pull request to building a new branch in a repository.
Β Β
- Continue practicing with this Github Actions workshop
- Learn more about GitHub Actions basics in this article