4 - Setup a CI pipeline

Learning Outcomes

  • Learn about GitHub Actions Workflows.
  • Learn about GitHub Self-Hosted Runner.

Problem Statement

We want to create a simple CI pipeline that will be used to build and push our docker image to a central registry. You can use DockerHub or GitHub docker registry as a central docker registry.


The following expectations should be met to complete this milestone.
  • CI pipeline should consist of the following stages
    • Build API
    • Run tests
    • Perform code linting
    • Docker login
    • Docker build and push
  • To achieve the stages of building, testing, and performing code linting, you need to use appropriate make targets.
  • CI pipeline should be run using a self-hosted GitHub runner running on your local machine.
  • CI pipeline should only be triggered when changes are made in the code directory and not in other directories or filepaths.
  • CI workflow should allow the developer to manually trigger the pipeline when required.

Further Reading