ci: add retry and fail-fast to install-wdk NuGet QFE resolution#624
Conversation
There was a problem hiding this comment.
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.
Codecov Report✅ All modified and coverable lines are covered by tests. 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. 🚀 New features to boost your workflow:
|
3bed30b to
6dec0d1
Compare
6dec0d1 to
c669580
Compare
There was a problem hiding this comment.
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.
…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.
c669580 to
1f57fbc
Compare
There was a problem hiding this comment.
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.
When
install-wdkreceives a 3-part WDK version like10.0.26100with 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-existentMicrosoft.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.