Skip to content
This repository has been archived by the owner on Jun 20, 2023. It is now read-only.
Benjamin Whelan edited this page May 12, 2023 · 2 revisions

CI/CD

The entire process is usually just writing a shell script to run in the cloud.

  • GitHub Actions: Cloud-based service for running automated workflows triggered by certain events such as pushing code to a GitHub code repository.

  • Continuous Integration (CI): An automated process that detects changes in a codebase and runs various checks and balances against the code to make sure that it still functions.:

    • building the code
    • running linters
    • automated tests
  • Continuous Deployment (CD): A technique where frequent automated deployments of the code to a production (or testing) environment take place.

CI

Designed to test integrated code being merged from multiple developers.

CD

Builds on a CI pipeline, adding the extra steps to deploy the code.

The Advantages of CI/CD

  1. Manual deployment is:
    • slow
    • risks mistakes

thus automating this, reduces time and risks.

  1. Feedback will be received faster from customers due to the constant automated deployment to customers.

  2. Important work can be focused on when deployment is managed automatically.

  3. An audit trail is left behind when automated deployments take place.

One key thing to note is that due to microservices being so complex and scalable, it is almost a necessity to then automate the deployments.

Services

  • GitHub Actions
  • BitBucket
  • GitLab
  • TravisCI
  • CircleCI

Workflows

A flow of work or a sequence of tasks that are performed one after the other.

Also known as a Pipeline, can be configured through YAML files that run a series of jobs, that each run steps. You can also simply call up a local shell script to avoid the YAML syntax.

A workflow can be triggered through an event:

  • push
  • merge request (pull request)

A workflow that has been invoked, is picked up by:

  • a runner
  • a container
  • a virtual machine