> Markdown version of [/videos/960-ci-cd-patterns-and-antipatterns-things-your-pipeline-should-not-do?t=2](https://www.wearedevelopers.com/videos/960-ci-cd-patterns-and-antipatterns-things-your-pipeline-should-not-do?t=2). Every page supports `.md` or `Accept: text/markdown`. Links point to the HTML versions so they work for humans too. Agent guide: [/agents.md](https://www.wearedevelopers.com/agents.md). --- # CI/CD Patterns and Antipatterns - Things your Pipeline Should (Not) Do Your CI/CD pipeline is wasting expensive developer hours on ritualistic, redundant tasks. Discover how changing test execution order and using dynamic triggers will drastically slash your build times. - **Speakers:** [Raniz](https://www.wearedevelopers.com/@raniz) - **Event:** World Congress 2024 - **Published:** August 20, 2024 - **Duration:** 29:36 - **URL:** https://www.wearedevelopers.com/videos/960-ci-cd-patterns-and-antipatterns-things-your-pipeline-should-not-do ## Summary Modern CI/CD pipelines frequently cause developer boredom, frustration, and unnecessary environmental impact by running redundant tasks. When engineers are forced to wait over thirty minutes for a build or face unexplained failures that prompt the dreaded 'retry' click, productivity plummets. Correcting this requires tackling ritualistic pipeline behaviors, where the same exhaustive sequence of linting, testing, and artifact publishing runs indistinguishably on every pull request, merge, and nightly trigger regardless of actual necessity. To optimize the feedback loop, engineering teams must adopt situational triggers and conditional configuration logic. By utilizing workflow tools like GitHub Actions path filters, pipelines can dynamically skip backend tests during a frontend-only code modification, slashing wait times. Furthermore, abandoning the aesthetic habit of running steps strictly along the testing pyramid order—where unit tests run long before slow integration tests—allows teams to explicitly "fail fast." Because well-practiced teams primarily catch unit errors locally, prioritizing integration tests in the pipeline flags external environment or complex logic failures significantly earlier. Splitting monolithic build processes into parallel, modular jobs further minimizes the physical wait to discover a breaking change. Avoiding the scenario of booting pipeline environments entirely from scratch requires aggressive dependency caching—extending even to compiled code outputs—alongside generating pre-configured Docker tooling images. However, to prevent optimization tactics from causing concurrent pipeline collisions, developers should tightly map built configurations to unique Git SHAs rather than mutable 'latest' tags. Ultimately, the underlying infrastructure must support this speed, and DevOps or platform teams need to properly provision compute logic. A critical rule of thumb is that build agents should be at least as powerful as the least powerful developer machine, recognizing that scarce developer hours are vastly more expensive than the fractional cost of scaling up cloud servers. **Keywords:** ci/cd pipeline optimization, conditional pipeline logic, automated pull request workflows, build artifact expiration, parallel pipeline execution, testing pyramid antipatterns, fail fast test reordering, build environment caching, docker tooling images, concurrent build interference, git commit SHA pinning, build agent provisioning, environmental compute impact, github actions path filtering, developer productivity workflows ## Chapters 1. **Reducing pipeline boredom, frustration, and environmental impact** (00:02) — Analyzing CI/CD bottlenecks helps minimize developer wait times, reduce retries, and lower compute-driven carbon emissions. 1. **Eliminating ritualistic pipelines triggered on every event** (02:01) — Separating workflows into specific pull request, merge, and nightly pipelines prevents unnecessary repetitive tasks. 1. **Using conditional pipeline steps based on changed paths** (06:02) — Filtering execution boundaries with glob expressions ensures only relevant backend or frontend step sequences run. 1. **Removing unused build artifacts to save storage** (08:36) — Implementing automated cleanup and expirations limits the massive storage overhead caused by hoarding discarded container images. 1. **Reordering testing steps for faster failure feedback** (10:18) — Prioritizing slow, high-failure integration and end-to-end tasks over passing unit tests dramatically reduces feedback loops. 1. **Replacing single sequential pipelines with parallel jobs** (12:02) — Running independent frontend and backend build tasks concurrently cuts overall waiting duration at the cost of slight compute overhead. 1. **Caching dependencies and incremental build compilation outputs** (15:18) — Saving previously downloaded dependencies and intermediate object files between runs brings pipeline speeds closer to local development times. 1. **Building dedicated tooling images to avoid parallel interference** (21:39) — Generating specific cache-backed container images with unique identifier tags prevents simultaneous pipelines from overwriting shared tool chains. 1. **Sizing build agents to match local developer hardware** (24:29) — Ensuring build server compute capabilities align with developer workstations prevents frustrating out-of-memory errors and timeout retries. 1. **Reviewing continuous integration patterns and anti-patterns** (28:23) — Summarizing practical ways to shorten feedback loops, optimize steps, and maintain reliable build agent infrastructure. ## Related Moments - [Building automated continuous deployment pipelines and final architectural insights](https://www.wearedevelopers.com/videos/100111-5-years-in-cloud-native-the-good-the-bad-and-the-bill) (from "5 Years in Cloud Native: The Good, the Bad, and the Bill") - [Evaluating current trends in CI/CD pipelines](https://www.wearedevelopers.com/videos/333-cd2cf-continuous-deployment-to-cloud-foundry) (from "CD2CF - Continuous Deployment to Cloud Foundry") - [Establishing best practices for efficient deployment pipelines](https://www.wearedevelopers.com/videos/53-securing-your-web-application-pipeline-from-intruders) (from "Securing Your Web Application Pipeline From Intruders") - [Identifying major automated recommendations for build pipeline performance improvements](https://www.wearedevelopers.com/videos/1442-engineering-velocity-in-the-age-of-ai-lessons-from-mobile-ci-cd) (from "Engineering Velocity in the Age of AI: Lessons from Mobile CI/CD") - [Optimizing testing tools and continuous integration pipelines](https://www.wearedevelopers.com/videos/786-11-tips-for-greener-code) (from "11 Tips for Greener Code") - [Introducing strategies for optimizing continuous integration execution velocity](https://www.wearedevelopers.com/videos/1442-engineering-velocity-in-the-age-of-ai-lessons-from-mobile-ci-cd) (from "Engineering Velocity in the Age of AI: Lessons from Mobile CI/CD") ## Related Articles - [Dev Digest 108 - Git off my cloud!](https://www.wearedevelopers.com/magazine/407-dev-digest-108-git-off-my-cloud) - [Dev Digest 120 - Apple and peers](https://www.wearedevelopers.com/magazine/455-dev-digest-120-apple-and-peers) - [Liuba Gonta and Yuliya Khadasevic - GitHub Copilot Beyond the Basics - 10 Ways to Elevate Your Coding](https://www.wearedevelopers.com/magazine/490-liuba-gonta-and-yuliya-khadasevic-github-copilot-beyond-the-basics-10-ways-to-elevate-your-coding) - [Now is the time for industrialized software development](https://www.wearedevelopers.com/magazine/601-now-is-the-time-for-industrialized-software-development) ## Related Jobs - [Staff Software Engineer, Copilot Experiences](https://www.wearedevelopers.com/jobs/ext/164361-staff-software-engineer-copilot-experiences) at **GitHub** - [Senior Software Engineer, Enterprise Products](https://www.wearedevelopers.com/jobs/ext/1841248-senior-software-engineer-enterprise-products) at **GitHub** - [Senior Engineer, Infrastructure Platform](https://www.wearedevelopers.com/jobs/ext/328836-senior-engineer-infrastructure-platform) at **Intercom, Inc.** - [Devops Engineer](https://www.wearedevelopers.com/jobs/ext/1940926-devops-engineer) at **Bitpanda** - [Cloud Foundations Team](https://www.wearedevelopers.com/jobs/ext/1483289-cloud-foundations-team) at **GitHub** - [Principal Software Engineer, Enterprise AI Platform](https://www.wearedevelopers.com/jobs/ext/1467292-principal-software-engineer-enterprise-ai-platform) at **GitHub**