Giter Site home page Giter Site logo

jethet / github-actions-workshop Goto Github PK

View Code? Open in Web Editor NEW

This project forked from techfems-projects-and-resources/github-actions-workshop

0.0 0.0 0.0 191 KB

Tutorial to understand the basics of Github Actions and get familiar with the CI/CD concepts around it.

Shell 6.76% JavaScript 43.28% CSS 16.52% HTML 33.44%

github-actions-workshop's Introduction

CodeWomen workshop - Automate your deployment process with Github Actions

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.

   

Who is it for?

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.

   

About the application

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:

image

Useful commands to build and run the application:

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

   

Getting Started 🚀

  1. 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
  2. Make sure you start by the Prerequisites section to make sure that you have everything we need installed
  3. Run and build the React application following the instructions to setup your application locally (lab 1)
  4. Understand the basic use of GitHub Actions by creating your first pipeline (lab 2)
  5. 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!

Labs:

These are the steps you can follow to complete this workshop (order is important):

image

   

Useful Theory

image

   

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.

Github Actions Docs

   

Additional resources

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.