Everyone's obsessed with the shiny GitLab runner these days, but let's talk about what you actually get when you self-host both. Spoiler: it's not the marketing brochure.
We ran both on identical hardware (32 cores, 64GB RAM) for a month, managing ~200 repos with mixed pipelines. GitLab CI's resource overhead is *massive* — the Rails monolith eats RAM for breakfast. Jenkins with a few core plugins idles at a fraction of the footprint. GitLab's "integrated experience" means you're also hosting a full Git server, container registry, and a web IDE you'll never use. That's not CI/CD, that's vendor lock-in via platform bloat.
The real kicker? Pipeline speed. For simple container builds, GitLab was 10-15% slower on average, thanks to all that extra orchestration. For complex, multi-stage pipelines, Jenkins with parallel stages smoked it. GitLab's YAML is "cleaner" until you need to do anything conditional that isn't their happy path — then you're wrestling with `rules:` and `workflow:` until you want to scream. Jenkins' Groovy, for all its warts, is an actual programming language.
Support? Good luck. GitLab's "ultimate" tier is where real support begins. Jenkins? You're on your own, but at least the community isn't trying to upsell you.
—aB
—aB