Skip to content

[release/dnup] Fail loudly instead of masking a broken dotnetup with dotnet-install fallback#55209

Draft
nagilson wants to merge 1 commit into
dotnet:release/dnupfrom
nagilson:nagilson-dnup-fail-loud
Draft

[release/dnup] Fail loudly instead of masking a broken dotnetup with dotnet-install fallback#55209
nagilson wants to merge 1 commit into
dotnet:release/dnupfrom
nagilson:nagilson-dnup-fail-loud

Conversation

@nagilson

@nagilson nagilson commented Jul 8, 2026

Copy link
Copy Markdown
Member

Concern addressed

On the release/dnup canary branch, a badly-broken dotnetup should surface as a hard CI failure instead of being silently masked by falling back to the standard dotnet-install script. Today several fallbacks quietly hide dotnetup breakage, so we cannot tell from a green build whether dotnetup actually worked.

Change

Remove the dotnet-install fallbacks that mask dotnetup failures, replacing them with a categorized Write-PipelineTelemetryError + ExitWithExitCode:

  • eng/configure-toolset.ps1 - bootstrap SDK acquire path (previously Write-Host ... return -> arcade silently fell back).
  • eng/restore-toolset.ps1 / eng/restore-toolset.sh - test-runtime acquire and install paths (previously fell back to InstallDotNetSharedFrameworksWithInstallScript).

The bootstrap install failure path already hard-failed; this makes the acquire and runtime paths consistent.

Deliberately preserved

The cross-architecture install-script path (if arch) is kept - that is a dotnetup capability gap (no --architecture override), not a dotnetup failure, so it must not hard-fail.

Related

The companion fix for the misleading exit code output/false failures lives in main: #55208.

Draft for CI validation.

…when dotnetup is broken

On the release/dnup canary branch we want a broken dotnetup to surface as a
hard CI failure rather than being silently masked by falling back to the
standard dotnet-install script. Remove the dotnet-install fallbacks from the
bootstrap SDK acquire path (configure-toolset.ps1) and the test-runtime install
path (restore-toolset.ps1/.sh) so acquisition or install failures fail the build.

The legitimate cross-architecture install-script path is preserved, since that
is a dotnetup capability gap rather than a dotnetup failure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant