Repository navigation
Conversation
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #5784 +/- ##
==========================================
- Coverage 76.13% 76.12% -0.02%
==========================================
Files 528 528
Lines 19579 19579
Branches 3829 3829
==========================================
- Hits 14906 14904 -2
- Misses 3791 3792 +1
- Partials 882 883 +1 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Setup Environment runs dotnet workload restore without a project, so it evaluates every project in Sentry.slnx on every leg. The three Linux legs without mobile targets install android, maui-android, maui-tizen, macos, wasm-tools and wasm-tools-net9. Windows installs ios, maccatalyst and macos. Every leg installs maui-tizen, which nothing targets, and macos, which only the macOS sample needs. The build legs now pass their solution filter, and the step restores the workloads for the projects in it. dotnet workload restore doesn't accept a solution filter, so the step passes its projects. The Android test app is restored only when the filter includes the tests that build it, and the legs without mobile targets skip Java and the Android SDK. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
ric-oliv
force-pushed
the
ci/restore-workloads-per-leg
branch
from
October 23, 2026 13:57
486d493 to
5afff07
Compare
This was referenced Oct 23, 2026
The step reads the project paths out of the solution filter. If that found none, grep's exit code already failed the step, but without a message. It now names the filter it couldn't read. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
The environment action now requires the solution filters or project files the job builds, and installs only their workloads. Jobs that build everything pass Sentry.slnx. Before, every job without a filter restored the workloads for all of Sentry.slnx, and CodeQL, format-code and verify-api ran a second, unfiltered workload restore after the action. The Playwright job restores the workloads of its test project only. Measured on top of the other CI changes, Setup Environment went from about 190 to 89 seconds in the trim job and from 170-180 to 71-78 in the Android device test build. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Member
Author
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Setup Environment runs
dotnet workload restorewithout a project, so it evaluates every project inSentry.slnx, whatever the leg builds. From the logs of run 39858273561:android,maui-android,maui-tizen,macos,wasm-toolsandwasm-tools-net9, which takes 83 to 113 seconds.ios,maccatalystandmacos, but it only builds Android and Windows targets.maui-tizen, which nothing targets, andmacos, which onlySentry.Samples.MacOSneeds.Sentry.Android.AssemblyReader.Tests.This PR scopes the step to what the leg builds:
build-sentrypasses its solution filter to Setup Environment, and the step restores the workloads for the projects in it.dotnet workload restorerejects a solution filter with "Couldn't find a project", so the step passes the filter's projects instead. I checked locally that this installs only what those projects need. If it finds no projects in the filter, the step stops with an error that names the filter.This PR leaves Mono alone, and #5794 removes it. The MAUI integration test restores its own workloads in CI, so it isn't affected.
Measured on two runs of this PR, against the median of 7
mainruns from October 22 and 23:mainandroid,maui-androidandmaui-tizen.mainthen. ci: cache the Cocoa SDK build #5781 has cached it since.This overlaps #5782 on Windows, which changes where .NET is installed, and both skip the Android test app there. I'm keeping them apart so we can see what each one is worth, and I'll resolve the conflict when the second one merges.
Every job now restores only what it builds
The environment action now requires
projects, the solution filters or project files the job builds, separated by spaces. Jobs that build everything passSentry.slnx, and a job that passes nothing fails with an error that says what to pass. That way every workflow follows the same rule, instead of only the build legs.dotnet workload restoreafter the action.dotnet workload restoredoesn't see the Android test app, becauseSentry.Android.AssemblyReader.Testsbuilds it with an MSBuild task rather than a project reference. The action still adds it forSentry.slnx, and for jobs that pass those tests or the app.On top of the other CI changes, Setup Environment went from about 190 to 89 seconds in the trim job and from 170-180 to 71-78 in the Android device test build.
#skip-changelog