Centralized CI/CD for 70+ Repos with Shared Runner

🧠 Most Engineers Would Have Created 70 CI/CD Files. I Created One. The dev team asked me to enable CI/CD for 70+ repositories. The obvious approach — independent runner + separate YAML per repo — would have worked on Day 1. The pain would have shown up on Day 100. So I designed a centralized model instead: 🔹 One Shared Runner — single execution engine for all 70 repos, no resource duplication 🔹 One Shared Pipeline Repo — master CI/CD logic in one place, single source of truth 🔹 Remote Include — each repo's .gitlab-ci.yml simply calls the shared pipeline Now when a change is needed — new security scan, updated deployment stage — I update one file and it reflects across all 70 repositories instantly. 📌 Key Lessons: 💡 Don't multiply what you can centralize 💡 Scalability starts at design, not after the problem appears 💡 Shared runners are massively underutilized by most teams 💡 Your pipeline is code — give it a proper home and treat it that way 💡 Always factor in maintenance cost, not just build cost 💡 Standardization is a force multiplier — onboarding a new repo becomes minutes, not hours This is the thinking that separates a scalable DevOps setup from a technical debt factory. Stack: GitLab CI/CD · Shared Runners · Remote Include · YAML Anchors How do you manage CI/CD at scale? Drop your approach below 👇 #DevOps #GitLab #CICD #PlatformEngineering #Automation #SRE #Gitlab-CI

To view or add a comment, sign in

Explore content categories