CI/CD Fundamentals

Lesson 7 of 7

Final Project: Build a Full CI/CD Pipeline for a Sample App

Bring every piece together into one real, working pipeline for a small application of your choice.

Requirements

  1. Set up a GitHub Actions workflow that runs on every push and pull request: install dependencies, lint, and run the test suite, failing fast if any step fails.
  2. Cache dependencies so repeated runs are meaningfully faster than a cold run.
  3. Build a Docker image of your app in the pipeline and tag it with the commit SHA.
  4. Add a separate deploy job that only runs after the test job succeeds (needs:), deploying your image somewhere real (a container registry at minimum, a running service if you want to go further).
  5. Use at least one repository secret for a credential your pipeline needs, never hardcoded in the workflow file.

Stretch goals

  • Add a test matrix running your suite against two different runtime versions.
  • Use a GitHub Actions Environment with a required manual approval step before deploying to "production".
  • Add a simple feature flag to your app, and deploy a new feature behind it, turned off by default.

Submit a link to your finished project (a repo with your workflow file, and a note on what it actually deploys to) below, an instructor will review it before you can mark this lesson complete. Good luck! 🚀

This lesson ends in a project. Build it on your own machine, there's nowhere to submit it here, but the brief above is everything you need.