Martin Beránek

GitLab CI pipelines for a whole company

Their legacy CI system was a costly, daily puzzle. So they rewrote it with GitLab CI, cutting maintenance down to just eight hours a month.

GitLab CI pipelines for a whole company
#1about 3 minutes

Overcoming the challenges of a legacy Jenkins pipeline

The initial Jenkins setup suffered from an undocumented and unversioned Groovy codebase, leading to high maintenance toil for the operations team.

#2about 4 minutes

Establishing new requirements for a modern CI system

The decision to migrate was driven by high support costs, while retaining successful concepts like monorepos and setting new goals for simplicity and clarity.

#3about 3 minutes

How GitLab CI pipelines use stages, jobs, and DAGs

GitLab CI pipelines are structured with sequential stages and parallel jobs, which can be optimized into a Directed Acyclic Graph (DAG) using the `needs` keyword.

#4about 4 minutes

Applying principles for scalable and maintainable pipelines

Key principles for success include recycling configurations with `include`, documenting complex jobs, assigning clear ownership, and tracking known issues as pitfalls.

#5about 4 minutes

Customizing pipeline runtimes and implementing robust testing

Pipeline execution is customized using variable Docker images, while testing is handled with Docker Compose and dynamic environments are managed for quality assurance.

#6about 3 minutes

Solving performance bottlenecks from data sharing and dependencies

Sharing large artifacts like `node_modules` is slow, so performance is improved by implementing local package caches and runner-level volume mounts.

#7about 3 minutes

Key lessons learned from the CI migration process

Important takeaways include educating developers on best practices, automating dependency updates with Renovate, and carefully managing changes in a shared monorepo.

#8about 4 minutes

A feature wishlist for improving GitLab CI workflows

Future improvements to GitLab CI could include native HashiCorp Vault integration, map support for variables, simpler rule evaluation, and faster artifact sharing.

Related jobs
Jobs that call for the skills explored in this talk.

Featured Partners

Related Articles

View all articles
AG
Andre Braun, GitLab
Now is the time for industrialized software development
Now is the time for industrialized software development Recently, I received a letter from my car’s manufacturer alerting me to a recall. They had discovered a defective part and wanted to replace it. It was easily fixed, and I might have forgotten a...
Now is the time for industrialized software development
DC
Daniel Cranney
Dev Digest 194: AI vs. Version Control, Password Louvre & Cursed Webdev
Inside last week’s Dev Digest 194 . 🧠 Learn how to become an AI-native software engineer 🤷‍♂️ How can you stand out when anyone can build anything? 👂 Whisper Leak allows listening to encrypted chats 🐝 What’s new the OWASP2025 Top Ten List 🙅‍♀️ Curse...
Dev Digest 194: AI vs. Version Control, Password Louvre & Cursed Webdev
CH
Chris Heilmann
WeAreDevelopers LIVE days are changing - get ready to take part
Starting with this week's Web Dev Day edition of WeAreDevelopers LIVE Days, we changed the the way we run these online conferences. The main differences are:Shorter talks (half an hour tops)More interaction in Q&AA tips and tricks "Did you know" sect...
WeAreDevelopers LIVE days are changing - get ready to take part

From learning to earning

Jobs that call for the skills explored in this talk.