Skip to content

[CI] Upload only test logs from the Windows validation jobs - #1570

Merged
adpa-ms merged 3 commits into
mainfrom
user/adibpa/copilot-validation-log-upload
Oct 24, 2026
Merged

adpa-ms merged 3 commits into
mainfrom
user/adibpa/copilot-validation-log-upload

Conversation

@adpa-ms

@adpa-ms adpa-ms commented Oct 23, 2026 •

Copy link
Copy Markdown
Contributor

📖 Description

The Windows jobs of the scheduled validation workflow uploaded the whole runner.temp folder, minus bulk binaries, as their logs-* artifact. The runner and the job's actions also use that folder, so the artifact carried the runner's command files, the event payload, the step scripts, and the credentials file actions/checkout writes for the job's token.

  • The Windows run step now passes runner.temp/mxc-test-temp to run_backend_validation_tests.ps1 as -TempDirectory, the way the Windows SDK bundle job passes its output directory. The dispatcher points TEMP and TMP at that folder's full path, and the upload takes that folder and mxc-ci.log. Test logs are still collected without naming each file; they now sit under mxc-test-temp/ in the artifact.
  • All four checkouts in Validation.Tests.Matrix.Job.yml set persist-credentials: false. Nothing in these jobs uses git credentials after checkout, so checkout removes its credentials file at the end of its own step instead of after the upload.

No regression test is added: this is a CI infrastructure fix, and the before-and-after artifact comparison below is the evidence.

🔗 References

The upload was widened to all of runner.temp in #939.

🔍 Validation

This workflow doesn't run on pull requests, so I dispatched it on this branch with gh workflow run Validation.Tests.Scheduled.yml --ref user/adibpa/copilot-validation-log-upload -f plan=nightly, with the nightly plan temporarily trimmed to seven jobs: windows-24h2 process (x64, arm64) and wslc; windows-prerelease-isolation-session (x64, arm64); ubuntu-24.04 bubblewrap; macos-15 seatbelt. The trim commit has since been dropped.

  • Run 40032008671 passed.
  • Each Windows artifact holds only mxc-ci.log and mxc-test-temp/. The file names under mxc-test-temp/ match the same jobs' artifacts from main's nightly run 39922643376, apart from GUIDs and process IDs; those main artifacts also held the credentials file and the runner's files.
  • Every checkout step logs "Removing auth" before the next step starts.

✅ Checklist

📋 Issue Type

  • Bug fix
Microsoft Reviewers: Open in CodeFlow

adpa-ms and others added 3 commits October 23, 2026 16:43
The Windows jobs uploaded the whole runner.temp folder, minus bulk
binaries, as their logs artifact. The runner and the job's actions use
that folder too, so the artifact also carried the runner's command
files, the event payload, the step scripts, and the credentials file
actions/checkout writes for the job's token.

The run step now passes runner.temp/mxc-test-temp to the dispatcher as
-TempDirectory, the way the Windows SDK bundle job passes its output
directory, and the dispatcher points TEMP and TMP at that folder's full
path. The upload takes that folder and mxc-ci.log. Test logs are still
collected without naming each file; they now sit under mxc-test-temp/
in the artifact.

The dispatcher's comment drops its scratch-root guards sentence: the
suites with those guards were removed in #1217 and #1558.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d9b7b96e-a872-4113-9cac-4afa39b56956
Nothing in these jobs runs git against GitHub after checkout, so all
four checkouts set persist-credentials: false. Checkout then removes
the credentials file for the job's token at the end of its own step,
instead of in its cleanup after every other step has run, including
the log upload.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d9b7b96e-a872-4113-9cac-4afa39b56956
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: d9b7b96e-a872-4113-9cac-4afa39b56956
@adpa-ms
adpa-ms requested a review from a team as a code owner October 23, 2026 23:48
Copilot AI balanced review requested due to automatic review settings October 23, 2026 23:48
@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🟢 Approval recommended

No blocking issues remain, and the linked branch validation run completed successfully.

No open issues 🎉

What changed in this PR

This PR narrows Windows validation artifacts to test output, avoiding collection of runner files and checkout credentials while preserving test-log collection.

Changes:

  • Redirect Windows test temporary files to a dedicated mxc-test-temp directory.
  • Upload only that directory and mxc-ci.log, and disable credential persistence for all four checkouts.
  • Update the CI runbook to describe the revised collection paths.
File Description
scripts/​ci/​run_backend_validation_tests.ps1 Adds an optional temporary-directory parameter and redirects TEMP and TMP there.
docs/​development/​build-and-test/​ci-validation-infrastructure.md Documents dedicated test-output storage and narrowed uploads.
.github/​workflows/​Validation.Tests.Matrix.Job.yml Supplies the test directory, restricts artifact paths, and disables checkout credential persistence.

Review effort: Balanced

@adpa-ms
adpa-ms merged commit 05a430b into main Oct 24, 2026
31 checks passed
@adpa-ms
adpa-ms deleted the user/adibpa/copilot-validation-log-upload branch October 24, 2026 00:43
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.

3 participants