Skip to content

Capture Windows local validation build binlogs - #33

Draft
mmitche wants to merge 1 commit into
mainfrom
mmitche-aspnet-flakiness-triage
Draft

mmitche wants to merge 1 commit into
mainfrom
mmitche-aspnet-flakiness-triage

Conversation

@mmitche

@mmitche mmitche commented Nov 10, 2026

Copy link
Copy Markdown
Owner

Capture Windows local validation build binlogs

  • You've read the Contributor Guide and Code of Conduct.
  • You've included unit or integration tests for your change, where applicable.
  • You've included inline docs for your change, where applicable.
  • There's an open issue for the PR that you are making. If you'd like to propose a new feature or change, please open an issue to discuss the change or find an existing issue.

Preserve MSBuild logs from Windows local validation builds.

Description

Enable binary logging for the No NodeJS, Debug, and Release build steps in the public, official, and unofficial Windows local-validation jobs. The jobs intentionally run without -ci, so the build script does not otherwise enable its default binlogger. The existing attempt-specific artifact upload already runs after a failed step.

Each MSBuild invocation uses a unique, step-specific filename under artifacts/log/. This preserves both native and managed build logs without later steps overwriting them. The quoted {} placeholder is passed through the PowerShell wrapper to MSBuild's unique-name expansion.

This is a diagnostic change, not a fix for the file lock. A future binlog can help identify overlapping targets or producers; a separate handle trace may still be needed to identify the process holding a file. Logging adds build I/O and artifact size, but is limited to this validation job and does not add retries or change failure handling.

Validation

  • python .\check.py green (session-only Windows harness, with the repository environment activated and the workspace and system dotnet.exe configured): passed 27 cases. It exercised the actual eng/build.ps1 and eng/build.cmd entry points with a small injected MSBuild project. Across all three pipeline definitions, 18 native/managed failure scenarios generated distinct binlogs, and nine successful build steps preserved earlier logs. The corresponding 18 scenarios reproduced the missing artifact before the change.
  • A local Windows file-lock reproduction failed with MSB3491. The baseline left the artifact directory without a binlog; the changed Release command retained separate native and managed binlogs, and the managed binlog contained the file-lock error.
  • git -c core.longpaths=true diff --check: passed.
  • Not run: the real Static Web Assets/QuickGrid build, the repository's .NET 12 alpha SDK, Visual Studio desktop MSBuild, or an Azure Pipelines hosted job/artifact upload. The local harness used an installed system .NET MSBuild with an injected project; it does not verify the original flake or the hosted upload service.

Relates to #31.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

This branch has not been deployed

No deployments
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