Skip to content

Guides

How to speed up GitHub Actions

Your pipeline takes longer than anyone wants to wait, and it is not obvious where the time goes.

8 min read

Your pipeline takes longer than anyone wants to wait, and it is not obvious where the time goes.

Symptoms

  • Developers context-switch while waiting
  • Pipeline duration grows every quarter
  • Nobody can say which step is slowest

Why it happens

Wall-clock time is spread across queue time, runner start, cache restore, dependency install and the build itself. Teams usually optimise the last one because it is the only one they can see.

How to fix it

  1. Measure first: split queue time, setup, cache restore and step time before changing anything
  2. Turn on concurrency cancellation so superseded pushes stop consuming capacity
  3. Fix cache hit rate before buying larger runners — it is usually the bigger lever
  4. Right-size runners against measured CPU utilization, up and down
  5. Parallelise the critical path: shard long test suites, split lint into its own job
  6. Move to runners with local NVMe if I/O wait is high

Your next build could be twice as fast, at half the price

Start free. Migrating away is the same one line, and we publish that diff too.