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…
- Write a GitHub Actions workflow that runs tests on every push/PR
- Build and push a Docker image to a registry automatically on merge to main
- Fail a PR's checks if tests or linting fail, blocking a bad merge
- Store and use secrets (API keys, cloud credentials) safely in a workflow
- Deploy to staging/production automatically after CI passes, with a manual approval gate for prod
- Cache dependencies in CI so builds don't reinstall everything every run
- 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
Read · beginner · 20 min · docs.github.com
GitHub Actions Quickstart
The smallest possible working workflow file — the fastest way to understand triggers, jobs and steps before building a real pipeline. — GitHub Docs
Read · intermediate · 25 min · docs.github.com
Building and testing Python
Shows exactly how to wire pytest and matrix Python versions into a CI workflow — the setup interviewers ask you to describe. — GitHub Docs
Watch · intermediate · 45 min · youtube.com
GitHub Actions Tutorial - Basic Concepts and CI/CD Pipeline with Docker
Walks through building, testing and pushing a Docker image on merge — the actual pipeline shape most AI-service repos use. — TechWorld with Nana
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
- Walk me through a GitHub Actions workflow that tests, builds and deploys a Python service.
- How do you store and use a cloud deploy credential securely in a GitHub Actions workflow?
- How would you set up a pipeline that requires manual approval before deploying to production?
- A CI run is failing only in the pipeline, not locally — how do you debug it?
- How do you speed up a slow CI pipeline that reinstalls all dependencies every run?
- How do you prevent a broken PR from being merged into main?