#30189·fastlane

The test suite is slow: ~9 minutes on CI, ~5 minutes locally

Author: lacostejCreated Sep 10, 2026Updated Sep 16, 2026

The problem

A full rspec run takes about 562s on a macOS runner and 276s on a 14 core laptop. That is long enough that contributors do not run it before pushing, and long enough to dominate CI feedback time.

Where the time goes

Measured with the JSON formatter, aggregating run_time per file: 269s of example time across 446 files, on macOS.

It is concentrated. Four files are 45% of the total:

34.9s  fastlane_core/spec/project_spec.rb
32.6s  scan/spec/detect_values_spec.rb
27.5s  scan/spec/runner_spec.rb
27.1s  deliver/spec/upload_metadata_spec.rb

It is subprocesses, not Ruby. 19 of 446 files carry requires_xcodebuild, and they account for 167s of 269s, 61%. Linux, where those specs skip, runs the same suite in about 130s against macOS's 562s.

It is not one pathological test. project_spec is 93 examples in 35.2s: two deliberate timeout tests with real sleeps account for 9.6s, and the rest is about eighty examples at roughly 1.2s each, every one a real xcodebuild -showBuildSettings.

The same questions are asked repeatedly. Those ~180 -showBuildSettings calls only ever ask about 7 fixture projects, about 22 distinct commands. FastlaneCore::Project#build_settings memoises the answer, but per instance, and every example constructs a fresh Project.

Scope

This issue is the problem and the measurements. Remedies belong in whatever PR proposes one. #30184, order dependence, was a prerequisite for the most obvious of them.