Cloud, deployment & production

Automate builds, tests and deploys with CI/CD

GitHub Actions pipelines that test, build images and deploy on merge.

~6 focused hours·intermediate

Tools: GitHub Actions, pytest in CI, Docker build/push in CI, environments/secrets, branch protection

Market relevance — share of job ads asking for this
What employers mean

You should be able to…

  1. Write a GitHub Actions workflow that runs tests on every push/PR
  2. Build and push a Docker image to a registry automatically on merge to main
  3. Fail a PR's checks if tests or linting fail, blocking a bad merge
  4. Store and use secrets (API keys, cloud credentials) safely in a workflow
  5. Deploy to staging/production automatically after CI passes, with a manual approval gate for prod
  6. Cache dependencies in CI so builds don't reinstall everything every run
  7. Debug a failing CI run from the logs without re-running blindly

Needs first: Containerize an application with Docker, Collaborate with Git and GitHub

Learn — free, link-checked

The few resources that matter

Practice

Test-to-Deploy Pipeline for the RAG API

Add a GitHub Actions workflow to the containerized RAG/ticket API repo that runs pytest and lint on every PR, builds and pushes a Docker image to GHCR on merge to main, and deploys to Cloud Run/your chosen platform with a manual approval step. Protect main so PRs can't merge with failing checks.

Done when
  • PRs show required status checks (tests, lint) that must pass before merge is allowed
  • Merging to main triggers an automatic Docker build+push with a commit-sha or semver tag
  • Deploy to the live environment requires a manual approval step, visible in the Actions run
  • A deliberately broken PR is shown being blocked by failing CI, with a screenshot/link
Prove it

Evidence a recruiter can check

  • Public repo with the .github/workflows/*.yml files
  • Link to a passing Actions run and one blocked/failing run as evidence checks work
  • Screenshot of branch protection settings requiring the CI checks
Interview

Questions you'll get asked

  1. Walk me through a GitHub Actions workflow that tests, builds and deploys a Python service.
  2. How do you store and use a cloud deploy credential securely in a GitHub Actions workflow?
  3. How would you set up a pipeline that requires manual approval before deploying to production?
  4. A CI run is failing only in the pipeline, not locally — how do you debug it?
  5. How do you speed up a slow CI pipeline that reinstalls all dependencies every run?
  6. How do you prevent a broken PR from being merged into main?
See where you stand for Machine Learning Engineer