The Five Stages of Grief When Your CI/CD Pipeline Breaks at 4:55 PM on a Friday
Denial, anger, bargaining, depression, and “I guess I’m working Saturday.”
It’s 4:55 PM on a Friday. You’re about to push the final commit of the week. The build will pass, deploy will succeed, and you’ll close your laptop with the smug satisfaction of a job well done.
The CI pipeline fails.
What follows is not a debugging session. It’s a psychological journey through the five stages of grief, compressed into approximately 90 minutes.
Stage 1: Denial
“It must be a flaky test.” You re-run the failed job. Without changing anything. Because the definition of insanity is doing the same thing over and over, but this time maybe the CI server was just having a bad day.
The second run also fails. “Interesting,” you say, as if you’re a detective examining a crime scene and not a person trying desperately to avoid admitting they broke the build.
Stage 2: Anger
“WHO COMMITTED TO MAIN WITHOUT RUNNING TESTS?” You check the git log. The last commit was yours. It was a “minor formatting fix.” You rage-delete a Slack channel.
You consider blaming the CI system. “GitHub Actions has been slow lately.” “The cache must have expired.” You know these are excuses. You don’t care. You’re in the anger stage. Reason left the building at 5:02 PM.
Stage 3: Bargaining
“What if I just skip the failing test and fix it next week?” You know this is wrong. The voice of your past self — the one who wrote angry code reviews about people who skip tests — echoes in your mind. You ignore it.
You look at the test. It’s testing something stupid anyway. Who even cares about this edge case? The user will never notice. You add .skip to the test. A part of your soul dies.
The pipeline passes. But at what cost?
Stage 4: Depression
The realization hits: you’ll need to fix this properly before Monday. The skipped test will come back to haunt you. Your weekend will include at least one SSH session. You close your laptop, stare at its dark screen, and contemplate a career change. Maybe farming. Cows don’t have CI pipelines.
You check your phone. Three messages from your partner about weekend plans. You type “sounds great!” with a smile emoji while internally calculating how much time you can carve out for the fix between brunch and the thing you promised to do.
Stage 5: Acceptance
You accept your fate. You will work Saturday morning. You will fix the test properly. You will remove the .skip. You will write a new one that actually covers the edge case. You will learn from this experience.
You will not learn from this experience. Next Friday at 4:55 PM, you will repeat this exact cycle. Because that’s the nature of CI/CD pipelines on Friday afternoons. It’s not a bug — it’s a feature of the calendar.
How to Break the Cycle
The real fix is to make your CI pipeline fast enough that you actually run it before 4:55 PM. Fast feedback loops catch failures early. Parallelize your test suite. Cache dependencies. Use smaller, focused pipelines for different parts of your codebase. And for the love of all that is holy: don’t merge to main on a Friday afternoon.
Or do. I’m not your manager. But don’t say I didn’t warn you.
Build pipelines that don’t ruin your weekend: Our CI/CD Pipeline Builder course covers GitHub Actions, GitLab CI, and the art of not breaking production on Friday.