Summary
The .NET main workflow has been failing on every push to main since 2026-06-18 (8+ consecutive failures). Always the same shape: build (windows-latest) passes, build (ubuntu-latest) fails in ~3–4 minutes with no Build step log file persisted — classic signature of the runner being killed before it can flush.
Evidence
Likely cause
The breakpoint (#1391 dbx) lands right when the solution crossed some size threshold. Several new hosting integrations have landed since (dbx, SeaweedFS, Bitwarden, Squad), each adding 3–6 new csproj.
- GitHub-hosted
ubuntu-latest runners have ~14 GB free disk; windows-latest has ~80 GB.
- A full
dotnet build -c Release of the whole toolkit now produces a LOT of bin/ + obj/ output across 100+ projects.
- The "Build step has no log file at all" signature is classic runner-process killed without flushing — strongly suggests disk exhaustion (or OOM).
- The matching test job
Hosting.Java.Tests-ubuntu-latest also timed out at exactly 1h on the first failure (run 27726664815) — additional symptom of the runner being unhealthy.
What dotnet-ci.yml (per-PR) does differently
PRs pass CI because dotnet-ci.yml only builds affected projects (using the path-based filter you set up), not the whole solution. dotnet-main.yml does a full dotnet restore + dotnet build on every push, which is what's blowing past the disk/memory budget.
Suggested fixes (any one should be enough)
-
Add disk cleanup step — easiest:
- uses: jlumbroso/free-disk-space@main
This reclaims 30+ GB on ubuntu-latest by removing Android SDK, GHC, .NET preinstalls we don't need, etc.
-
Shard the build — split dotnet build across N matrix shards by Directory.Solution.props slice.
-
Use --no-incremental + clean between project builds — slower but bounded memory.
-
Switch build (ubuntu-latest) to ubuntu-latest-large or ubuntu-22.04-large — paid runner with more disk.
Happy to send a PR for option 1 if you want — it's the lowest-risk and matches what other large .NET repos (including dotnet/aspire itself) do.
cc @aaronpowell — flagging because main is currently red and v13.5.0 can't be cut until this is fixed (release workflow runs run-tests → package → sign → publish-nuget).
Summary
The
.NET mainworkflow has been failing on every push tomainsince 2026-06-18 (8+ consecutive failures). Always the same shape:build (windows-latest)passes,build (ubuntu-latest)fails in ~3–4 minutes with no Build step log file persisted — classic signature of the runner being killed before it can flush.Evidence
d8c5674(Squad #1394)Likely cause
The breakpoint (#1391 dbx) lands right when the solution crossed some size threshold. Several new hosting integrations have landed since (dbx, SeaweedFS, Bitwarden, Squad), each adding 3–6 new csproj.
ubuntu-latestrunners have ~14 GB free disk;windows-latesthas ~80 GB.dotnet build -c Releaseof the whole toolkit now produces a LOT ofbin/+obj/output across 100+ projects.Hosting.Java.Tests-ubuntu-latestalso timed out at exactly 1h on the first failure (run 27726664815) — additional symptom of the runner being unhealthy.What
dotnet-ci.yml(per-PR) does differentlyPRs pass CI because
dotnet-ci.ymlonly builds affected projects (using the path-based filter you set up), not the whole solution.dotnet-main.ymldoes a fulldotnet restore+dotnet buildon every push, which is what's blowing past the disk/memory budget.Suggested fixes (any one should be enough)
Add disk cleanup step — easiest:
- uses: jlumbroso/free-disk-space@mainThis reclaims 30+ GB on ubuntu-latest by removing Android SDK, GHC, .NET preinstalls we don't need, etc.
Shard the build — split
dotnet buildacross N matrix shards byDirectory.Solution.propsslice.Use
--no-incremental+ clean between project builds — slower but bounded memory.Switch
build (ubuntu-latest)toubuntu-latest-largeorubuntu-22.04-large— paid runner with more disk.Happy to send a PR for option 1 if you want — it's the lowest-risk and matches what other large .NET repos (including
dotnet/aspireitself) do.cc @aaronpowell — flagging because main is currently red and
v13.5.0can't be cut until this is fixed (release workflow runsrun-tests→package→sign→publish-nuget).