When:
Tuesday, September 29, 2026 - 17:35 to 17:55 CEST
Room:
Goudriaan Room I&II
Tags:
development & coding
Track:
SVG
m&b icon_new brand
development, ai & agentic architecture

Gander in the Wild: How We Built a Performance Safety Net into Our CI/CD Pipeline

Gander in the Wild: How We Built a Performance Safety Net into Our CI/CD Pipeline

Julien Joye (Julienjoye)

Performance regressions are silent killers — they sneak in one commit at a time, and by the time someone notices, the debt is enormous. Gander, shipped with Drupal core since 10.2, gives us the tools to catch them at the earliest possible stage: the merge request.

In 20 minutes, I'll show you how we integrated Gander's performance assertions into our CI/CD pipeline to make every build fail when performance budgets are exceeded — no dedicated infrastructure required. You'll walk away with a proven pattern, real configuration files, and a checklist to get started by next sprint.

Prerequisite

Participants should be comfortable writing PHPUnit tests in Drupal (functional or kernel tests) and have a basic understanding of how a CI/CD pipeline works (e.g., GitLab CI, GitHub Actions, or similar).

Target Audience

Backend Developers or Technical Leads who already faced performance issues and thought ""we should have caught this earlier""

Outline

This talk is structured as a practical, step-by-step journey — from understanding why we need proactive performance testing to having Gander assertions running in your CI/CD pipeline. Here's the outline:

1. The ""Shift Left"" Case (3 min) — Why retroactive tools like Lighthouse aren't enough during development. A real-world example of a regression that slipped through to production.

2. Gander's Assertion Model (2 min) — What Gander measures, how performance assertions extend PHPUnit functional tests, and why this pass/fail approach requires zero infrastructure overhead.

3. From Local to Pipeline (10 min) — Step-by-step walkthrough: writing your first performance test, defining performance budgets per content type and user role, configuring the CI runner, and reading the results when a build fails.

4. Lessons Learned the Hard Way (3 min) — Budgets that need iteration, flaky metrics in CI environments, and getting the team to actually care.

5. Going Further (2 min) — A roadmap beyond assertions: OpenTelemetry integration, long-term monitoring with Grafana, and distributed tracing with Grafana Tempo.

Learning Objectives

Understand why proactive performance testing at the CI/CD level catches regressions that retroactive tools like Lighthouse miss.

Write Gander performance assertions in PHPUnit tests and define meaningful performance budgets for a Drupal project.

Configure a CI/CD pipeline to run Gander tests and fail builds when performance thresholds are exceeded — without any dedicated monitoring infrastructure.

Experience level
Intermediate