ci: expand ci matrix to test more LLVM versions#593
Conversation
There was a problem hiding this comment.
Pull request overview
This PR expands the CI testing matrix to include additional LLVM versions (18.1.8, 19.1.1, 20.1.0, and 21.1.0) across all GitHub Actions workflows, and updates the README documentation to reference the CI configuration for supported LLVM versions.
Key changes:
- Added four new LLVM versions (18.1.8, 19.1.1, 20.1.0, 21.1.0) to the test matrix in six CI workflow files
- Updated README.md to link to the CI workflow configuration for the list of tested/supported LLVM versions
Reviewed changes
Copilot reviewed 7 out of 7 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
.github/workflows/build.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the build workflow matrix |
.github/workflows/test.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the test workflow matrix |
.github/workflows/lint.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the lint workflow matrix |
.github/workflows/docs.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the docs workflow matrix |
.github/workflows/codeql.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the CodeQL workflow matrix |
.github/workflows/local-development-makefile.yaml |
Added LLVM versions 18.1.8, 19.1.1, 20.1.0, and 21.1.0 to the local development workflow matrix |
README.md |
Added reference to CI workflow configuration for list of tested/supported LLVM versions |
💡 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 #593 +/- ##
=======================================
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:
|
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 9 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 7 out of 7 changed files in this pull request and generated 1 comment.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 12 out of 12 changed files in this pull request and generated 6 comments.
Comments suppressed due to low confidence (2)
.github/actions/install-winget-package/action.yaml:41
- This script removed $ErrorActionPreference = 'Stop'. Since it calls cmdlets like Import-Module/Get-WinGetPackage/Install-WinGetPackage, failures may become non-terminating and allow the step to continue with partial state. Restore $ErrorActionPreference = 'Stop' (or add -ErrorAction Stop to key operations) to keep the advertised 'robust error handling' behavior.
Set-StrictMode -Version Latest
# Import WinGet PowerShell module
Import-Module Microsoft.WinGet.Client -Force
.github/actions/install-wdk/action.yaml:31
- This step removed $ErrorActionPreference = 'Stop'. If any of the validation/IO cmdlets emit non-terminating errors, the action could continue and fail later in harder-to-debug ways. Consider restoring $ErrorActionPreference = 'Stop' here (or ensure critical operations use -ErrorAction Stop) to keep failures immediate and consistent.
shell: pwsh
run: |
Set-StrictMode -Version Latest
$source = '${{ inputs.source }}'
$version = '${{ inputs.version }}'
$hostArch = '${{ inputs.host }}'
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> Signed-off-by: Melvin Wang <melvin.mc.wang@gmail.com>
There was a problem hiding this comment.
Pull request overview
Copilot reviewed 8 out of 8 changed files in this pull request and generated 2 comments.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| if (-not (Get-PSRepository -Name PSGallery -ErrorAction SilentlyContinue)) { | ||
| Write-Host 'Register-PSRepository -Default failed. Registering with explicit URL...' | ||
| Register-PSRepository -Name PSGallery -SourceLocation 'https://www.powershellgallery.com/api/v2' -InstallationPolicy Trusted | ||
| } |
There was a problem hiding this comment.
This block can still leave PSGallery unregistered (both registration attempts can fail) and the script will continue, making later failures harder to diagnose. After the fallback Register-PSRepository, consider re-checking Get-PSRepository -Name PSGallery and explicitly failing with a clear error if it’s still missing.
| } | |
| } | |
| # After attempting both default and explicit registration, ensure PSGallery is actually available. | |
| if (-not (Get-PSRepository -Name PSGallery -ErrorAction SilentlyContinue)) { | |
| Write-Error "PSGallery could not be registered even after fallback registration attempts. PowerShellGet/NuGet configuration may be broken." | |
| exit 1 | |
| } |
| Register-PSRepository -Default -ErrorAction SilentlyContinue | ||
| if (-not (Get-PSRepository -Name PSGallery -ErrorAction SilentlyContinue)) { | ||
| Write-Host 'Register-PSRepository -Default failed. Registering with explicit URL...' | ||
| Register-PSRepository -Name PSGallery -SourceLocation 'https://www.powershellgallery.com/api/v2' -InstallationPolicy Trusted |
There was a problem hiding this comment.
Setting PSGallery to Trusted changes the trust policy for subsequent module installs in this runner session, which is broader than necessary for a workaround. If possible, avoid changing the installation policy to trusted (e.g., keep it untrusted and rely on explicit -Force/-Confirm:$false where you install modules, or scope the trust change as narrowly as you can).
| Register-PSRepository -Name PSGallery -SourceLocation 'https://www.powershellgallery.com/api/v2' -InstallationPolicy Trusted | |
| Register-PSRepository -Name PSGallery -SourceLocation 'https://www.powershellgallery.com/api/v2' -InstallationPolicy Untrusted |
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.
This pull request updates the supported LLVM versions across all CI workflow files and clarifies the LLVM installation instructions in the
README.md. The changes ensure that the project is tested and built against newer LLVM releases, improving compatibility and future-proofing the build process.