DevOps project
Build a CI pipeline that actually fails on a broken PR
A GitHub Actions pipeline for lint, test, and build — proven by intentionally breaking a test and watching the pipeline correctly go red.
The brief
Set up a GitHub Actions pipeline for a repository: lint and run tests on every pull request, build a Docker image on merge to main, and cache dependencies so runs are fast. Document the branch protection rule that makes this check required (it can't be exported as a file, so screenshot or describe the setting). Then break a test on purpose in a PR and confirm the pipeline correctly fails.
Suggested stack
What you hand in
- A public GitHub repository with the workflow file(s) and a README
- A link to (or screenshot of) a PR where the pipeline correctly failed on a broken test
- The README documents the branch protection setting and dependency caching approach
Grading happens against the rubric below, so read it before you start — not after.
How this is graded
Published in advance and weighted out of 100. Nothing here is a surprise.
The pipeline genuinely fails when lint or tests fail — proven with a real broken-test PR, not just described as working.
Dependencies are cached between runs (e.g. actions/cache or built-in package manager caching), and a re-run is measurably faster than a cold run.
The Docker image built on merge to main actually runs correctly when pulled and started.
The required-check setting is clearly documented (screenshot or precise steps) since it lives in repo settings, not in a file.
No console errors or crashes, no broken layout, no leftover placeholder text or commented-out code.
Why this project is worth your weekend
- CI is the daily-driver tool of both DevOps and backend work, and most candidates have only ever copy-pasted a workflow file without verifying it actually catches failures.
- A pipeline that reports green even when a test fails is worse than no pipeline, because it creates false confidence — this project is specifically designed to prove it doesn't.
- Caching discipline is a small decision with a large, checkable effect on how fast a team's feedback loop is.
Where people lose points
- A workflow that reports success even when the test command actually failed, because its exit code isn't checked or is swallowed by a later step.
- No dependency caching, so every run reinstalls everything from scratch and takes minutes longer than it needs to.
- Secrets or API tokens hardcoded directly into the workflow YAML instead of stored as GitHub Actions secrets.
Other DevOps projects
Two or three of these turn an empty resume into a portfolio.
Built it? Get it scored against this rubric.
Submit your work and get a score on every criterion above, written feedback, and three resume bullets you can use straight away.