How to make incremental builds work on a Mac mini CI with Xcode 26

Hi all,

I’m looking for help from people familiar with Swift/Xcode.

Our team runs CI builds on a single Mac mini.

Incremental builds on local machines are fast (around 1–2 minutes), but on the Mac mini CI it seems incremental builds are not working, and the build takes about 8 minutes.

I read that Xcode 26 introduced Compilation Caching. Based on my understanding, I expected that keeping some DerivedData on CI might allow incremental builds and reduce build time.

So I enabled Compilation Caching and updated our xcodebuild command to specify -derivedDataPath using a fixed absolute path. However, the build time did not improve at all.

Could you advise what we should do to speed this up?

Am I misunderstanding how this feature is supposed to work in CI?

Thanks in advance.

Beyond DerivedData/cache setup, which others covered: one CI-specific diagnostic worth
adding is separating incremental-build behavior from machine-level stalls. If the same
commit builds fast sometimes and slowly other times, check the thermals during a slow
build before touching the build system: pmset -g therm - a CPU_Speed_Limit below
100 means macOS is throttling the box, and on Apple Silicon that happens while
thermalState still says "nominal".

A related data point we measured on a live GitHub Actions self-hosted runner (M4 Pro,
2026-08-06): a build process SIGSTOPped mid-job for 3 and even 10 minutes still ends in
a green job - the log just shows a gap while Runner.Listener keeps the connection.
So a silent period in a CI log is not proof the runner died.

If it turns out to be thermal: I maintain an MIT tool (coffee-paladin) that gates CI
job start on a hot machine and keeps a black box for mystery slowdowns. Honest scope:
GitHub Actions and self-managed GitLab CE tested (a 10-minute freeze passed on both); Jenkins untested.