Add a PR, CI workflow that performs a basic install of NuGet packages#24
Merged
Add a PR, CI workflow that performs a basic install of NuGet packages#24
Conversation
0003102 to
ba56162
Compare
ba56162 to
6cfb5bf
Compare
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.
Fixes #20.
Adds an end-to-end scenario test for
:/CMakeLists.txtand a GitHub Actions workflow that runs it on Windows, Linux, and macOS.What's included
Some pre-cursor fixes:
ensure_nunugetshould makeNuNuGetexecutable on non-WIN32 platforms - Since the NuGet is unpacked as a .zip file, theNuNuGetexecutable isn't marked as executable. Usingfile(CHMODto mark itNUGET_LOCATIONshould use the lower-casePACKAGE_NAME- The NuGet packages in the global packages folder have a lower-case folder name. Since Linux and MacOS respect the casing,ensure_nunugetneeds to be more strict here.:/scenarios/basic/- a self-contained CMake project that exercises:/CMakeLists.txtend-to-end with three packages (Microsoft.Windows.ImplementationLibrarywith a floating version,Microsoft.Windows.CppWinRT,Microsoft.Windows.SDK.CPP). After configuration it asserts:Microsoft.Windows.ImplementationLibrary's floating version 1.* resolved to a 1.x releasefind_packagehint variable is set (*_ROOT or *_DIR)find_package(Microsoft.Windows.ImplementationLibrary)creates the expected target with valid include directoriesscenarios/basic/Basic.Tests.ps1- Pester tests that encapsulate the two-step configure logic:packages.lock.jsonwas created.github/workflows/scenario-tests.yml- runs the Pester tests on windows-latest, ubuntu-latest, and macos-latest on every push to main and on pull requests. Uses fail-fast: false so all three platforms always run to completion..gitignore— ignores __* build/tool artifact directories.