Skip to content

ci: add retry and fail-fast to install-wdk NuGet QFE resolution#624

Merged
wmmc88 merged 1 commit into
microsoft:mainfrom
wmmc88:fix/install-wdk-qfe-fallback
Mar 20, 2026
Merged

ci: add retry and fail-fast to install-wdk NuGet QFE resolution#624
wmmc88 merged 1 commit into
microsoft:mainfrom
wmmc88:fix/install-wdk-qfe-fallback

Conversation

@wmmc88
Copy link
Copy Markdown
Collaborator

@wmmc88 wmmc88 commented Mar 6, 2026

When install-wdk receives a 3-part WDK version like 10.0.26100 with NuGet source, it must resolve a QFE suffix because NuGet WDK packages only exist as 4-part versions (e.g. 10.0.26100.1882). The previous fallback paths silently used the bare 3-part version on API timeout or when no versions matched, guaranteeing a downstream "package not found" failure. This was hit in PR #593 where a 30s NuGet API timeout caused the action to try installing the non-existent Microsoft.Windows.WDK.x64 10.0.26100.

Replaces the silent fallbacks with a retry loop (3 attempts, exponential backoff) that only retries transient errors (timeouts, network failures, HTTP 429/5xx) and fails fast on non-transient errors like no matching versions for the base version. Includes the last exception message in the final error for easier CI diagnosis.

Copilot AI review requested due to automatic review settings March 6, 2026 08:10
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the install-wdk composite GitHub Action to avoid attempting NuGet installs with non-existent 3-part WDK versions by adding retry logic and failing fast when QFE resolution cannot be completed.

Changes:

  • Add retry + backoff and hard failure for NuGet QFE lookup when given a 3-part WDK version.
  • Improve inline documentation/comments for why QFE resolution is required for NuGet WDK packages.
  • Minor Rust formatting cleanups (remove trailing commas in format! calls).

Reviewed changes

Copilot reviewed 4 out of 4 changed files in this pull request and generated 2 comments.

File Description
.github/actions/install-wdk/action.yaml Adds retry/backoff and explicit failure for QFE resolution when installing WDK via NuGet.
crates/wdk-macros/src/lib.rs Minor formatting cleanup in error format! calls.
crates/wdk-build/src/lib.rs Minor formatting cleanup in path format! calls.
crates/wdk-build/src/cargo_make.rs Minor formatting cleanup in format! call used for PATH manipulation.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/actions/install-wdk/action.yaml
Comment thread .github/actions/install-wdk/action.yaml Outdated
@wmmc88 wmmc88 changed the title fix(ci): fail fast on NuGet QFE lookup failure in install-wdk ci: fail fast on NuGet QFE lookup failure in install-wdk Mar 6, 2026
@wmmc88 wmmc88 marked this pull request as draft March 6, 2026 08:28
@codecov-commenter
Copy link
Copy Markdown

codecov-commenter commented Mar 6, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 77.41%. Comparing base (547b792) to head (1f57fbc).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #624   +/-   ##
=======================================
  Coverage   77.41%   77.41%           
=======================================
  Files          24       24           
  Lines        4853     4853           
  Branches     4853     4853           
=======================================
  Hits         3757     3757           
  Misses        979      979           
  Partials      117      117           

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@wmmc88 wmmc88 force-pushed the fix/install-wdk-qfe-fallback branch from 3bed30b to 6dec0d1 Compare March 6, 2026 09:01
Copilot AI review requested due to automatic review settings March 7, 2026 20:38
@wmmc88 wmmc88 force-pushed the fix/install-wdk-qfe-fallback branch from 6dec0d1 to c669580 Compare March 7, 2026 20:38
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated 2 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread .github/actions/install-wdk/action.yaml Outdated
Comment thread .github/actions/install-wdk/action.yaml Outdated
…d 3-part version

When a 3-part WDK version like 10.0.26100 is passed to the install-wdk
action with NuGet source, it must resolve a QFE suffix (e.g.
10.0.26100.1882) because NuGet WDK packages only exist with 4-part
versions. The previous fallback logic silently used the bare 3-part
version on timeout or API failure, which guaranteed a nuget install
failure downstream with a confusing "package not found" error.

Replace the silent fallback with retry logic (3 attempts with
exponential backoff) and a hard error if resolution fails entirely.
@wmmc88 wmmc88 force-pushed the fix/install-wdk-qfe-fallback branch from c669580 to 1f57fbc Compare March 7, 2026 20:45
@wmmc88 wmmc88 changed the title ci: fail fast on NuGet QFE lookup failure in install-wdk fix(ci): add retry and fail-fast to install-wdk NuGet QFE resolution Mar 7, 2026
@wmmc88 wmmc88 marked this pull request as ready for review March 7, 2026 23:24
Copilot AI review requested due to automatic review settings March 7, 2026 23:24
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 1 out of 1 changed files in this pull request and generated no new comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@wmmc88 wmmc88 changed the title fix(ci): add retry and fail-fast to install-wdk NuGet QFE resolution ci:: add retry and fail-fast to install-wdk NuGet QFE resolution Mar 9, 2026
@wmmc88 wmmc88 changed the title ci:: add retry and fail-fast to install-wdk NuGet QFE resolution ci: add retry and fail-fast to install-wdk NuGet QFE resolution Mar 9, 2026
Comment thread .github/actions/install-wdk/action.yaml
@wmmc88 wmmc88 requested a review from a team March 9, 2026 23:34
@wmmc88 wmmc88 enabled auto-merge March 19, 2026 23:35
@wmmc88 wmmc88 added this pull request to the merge queue Mar 19, 2026
Merged via the queue into microsoft:main with commit 3acf7bb Mar 20, 2026
257 of 258 checks passed
@wmmc88 wmmc88 deleted the fix/install-wdk-qfe-fallback branch March 20, 2026 01:02
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.

5 participants