Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Why is my pipeline so slow?

Why is my pipeline so slow?

Is my CI pipeline getting slower? It feels like more end-to-end tests are failing
lately. Since when is deployment taking so long?

Have questions like these bothered you before? You are probably not alone.
But what can we do about it? Well, we could add some facts and measurements
to our gut-feeling and prove that something is not right.

Luckily, there are APIs that we can leverage to get the timing and
success rates of our CI jobs.

In this talk we will show how we can use a simple Deno script to retrieve that data,
pipe into ElasticSearch and visualize it with Kibana, so that we can see what is
really going on.

Nils Knappmeier

February 27, 2025
Tweet

More Decks by Nils Knappmeier

Other Decks in Programming

Transcript

  1. The pipeline is failing for over 4 hours now and

    nothing gets deployed. Trunk based anger
  2. Gut feelings Do you also think that our tests have

    become slower lately? Yeah, sure feels like it. But how can we be sure?
  3. SPIEL.digital - Frontend • Digital board-game fair • Developed June

    2020 - Oktober 2020 • CMS for exhibitors, media creators etc. • Fancy UI for visitors LIVE DEMO Analysis of SPIEL.digital pipelines
  4. A real life example • Monorepo for frontend and backend

    • Lots of tests • Merge requests • Review apps + staging environment • E2E-Tests • Continuous deployment
  5. Jest 27 vs vitest with parallel shards 20 18 18

    vitest shards 20 22 vue 3 vitest 0.34 to vitest 2
  6. Successful e2e test, average duration usual noise something is wrong

    something is wrong Warning! Graph not proportional
  7. Conclusion • Patterns are easier to spot in graphs •

    Good decision helper for fixing e2e-tests • Addictive: Donʼt waste your time • Better to use Node instead of Deno? (More mainstream)
  8. git push origin main pipeline running … Done. Next ticket.

    The pipeline is failing for over 4 hours now and nothing gets deployed.