macos-15 runners slower build times in new version? #170682
-
Why are you starting this discussion?Question What GitHub Actions topic or product is this about?Actions Runner Image Discussion DetailsAfter going from image version Our build configuration is the same. The .NET SDK and workloads is the same between runs, but it went from around ~26 minutes to over 1 hour and timing out. I narrowed the issue down to be LLVM, which I tried disabling with So question is, were the agents changed significantly hardware wise or perhaps more agents are running on the same shared hardware and starved more of resources? Because looking at the runner-images releases, the software used for this build hasn't changed that much. |
Beta Was this translation helpful? Give feedback.
Replies: 5 comments 1 reply
-
|
Hey @Cheesebaron!
No, no changes of this kind have occurred. |
Beta Was this translation helpful? Give feedback.
-
|
Hi @Cheesebaron, Short answer: You can’t pin a specific hosted image build, and the macOS runner fleet is updated/rotated gradually. The A few points and workarounds: What changed?
What you can do now1) Log what you’re actually running onAdd these steps to your workflow to capture image + hardware info in each run: - name: Print image version
run: echo "ImageVersion=$ImageVersion"
- name: Show hardware (Apple Silicon)
run: |
sysctl -n machdep.cpu.brand_string || true
sysctl -a | grep -E 'core_count|thread_count' || true
system_profiler SPHardwareDataType || trueThis helps confirm whether slow runs correlate with a particular image batch or hardware slice. (Image version is also documented in runner-images releases.) :contentReference[oaicite:3]{index=3} 2) Keep LLVM optional for CIIf Release builds with LLVM don’t provide value in CI, gate it: <!-- In your csproj -->
<PropertyGroup Condition="'$(CI)' == 'true'">
<MtouchUseLlvm>false</MtouchUseLlvm>
</PropertyGroup>Run LLVM only on nightly/main or for App Store artifacts. 3) Warm caches and trim work
4) Use a container-like isolation (where possible)For non-iOS parts of your pipeline, move work to Linux runners or containers; reserve macOS time strictly for the iOS archive/AOT step. 5) Scale up when you must pin performance
FYI/Context links
TL;DRIt’s very likely not your project—it’s image/hardware variability plus LLVM’s cost. Log the image/hardware per run, disable LLVM for routine CI, tighten caches/targets, and consider larger/self-hosted runners if you need consistent sub-30-minute builds. |
Beta Was this translation helpful? Give feedback.
-
|
The slowdown you’re seeing isn’t related to changes in the .NET SDK or workloads, but rather to the underlying hosted agent environment. The newer image ( Hosted agents are on shared infrastructure, and Microsoft doesn’t guarantee identical hardware performance between image versions. In some cases, agents are consolidated differently, which can lead to slower builds. Possible workarounds:
So yes — it’s very likely the agents have changed resource-wise rather than your build configuration. |
Beta Was this translation helpful? Give feedback.
-
No, there were no hardware changes. Most of these changes (a strong drop in performance for some processes) are related to software updates. |
Beta Was this translation helpful? Give feedback.
Hey @Cheesebaron!
No, no changes of this kind have occurred.