feat: add Windows ARM support and clang-include-cleaner tool#42
Merged
Conversation
- Add Windows platform detection (MINGW*/MSYS*/CYGWIN*) with amd64 and arm64 architecture support - Handle .exe extension for Windows binary assets in download and install steps - Add clang-include-cleaner as a supported tool (version 18+) - Update README and help overview with new platform and tool
- Add windows-latest to OS matrix with shell: bash default - Add clang-include-cleaner as test tool, excluding versions < 18 - Use cp instead of ln -s on Windows (symlinks often fail in Git Bash)
The missing binary issue in upstream static-binaries has been fixed.
asdf-vm/actions/setup does not support Windows runners. The Windows platform detection code in utils.bash remains for users who set up asdf manually on Git Bash/MSYS2.
Add a targeted plugin_test_arm job on ubuntu-24.04-arm testing all 5 tools at versions 11, 18, and 22. Keeps the main x86_64 matrix unchanged to avoid CI bloat.
When new code is pushed to the same branch/PR, cancel any previous in-progress workflow runs to save CI resources.
Replace duplicate plugin_test_arm job with a single os entry in the main matrix.
Replace the Cartesian matrix (212 jobs) with 4 sequential jobs, one per OS. Each runner loops through all 5 tools at versions 11, 14, 18, 22 in a single bash script, greatly reducing scheduling overhead and total wait time.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Description
This PR adds support for Windows ARM64 (and Windows AMD64) as a platform, as well as a new tool:
clang-include-cleaner.Changes
lib/utils.bashMINGW* | MSYS* | CYGWIN*kernel patterns invalidate_platform()to detect Windows (Git Bash, MSYS2, Cygwin). Mapsx86_64→amd64andarm64/aarch64→arm64..exeextension handling: Windows binaries from the static-binaries repo have an.exeextension. Updateddownload_release()andinstall_version()to append.exewhen running on Windows.README.mdclang-include-cleanerto the supported tools list with version requirement note (18+)clang-include-cleanerinstall command to the tablebin/help.overviewclang-include-cleanerto the tool listingMotivation and Context
The cpp-linter/clang-tools-static-binaries repo already provides:
windows-arm64)clang-include-cleanerbinaries (starting from version 18)This PR adds asdf plugin support for consuming those binaries.
Types of changes
How Has This Been Tested?
list_all_versions()correctly extracts versions from.exe-suffixed namesdownload_release()correctly constructs the grep pattern for Windows assetsChecklist: