Add Windows tests to CI #739
Draft
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.
Important
The base PR #738 must be merged first as it contains the base CI files.
This pull request improves cross-platform support for building and testing the project, particularly for Windows environments. The most significant changes include updates to CI workflows to add Windows and Ubuntu build/test jobs, refactoring Makefiles to handle OS-specific commands, and fixing path handling in tests to work correctly on Windows.
CI/CD and Build/Test Workflow Improvements:
.github/workflows/build.ymland.github/workflows/test.ymlto run jobs on Windows, Ubuntu, and macOS, with OS-specific steps for installing Mono. This ensures CI coverage across all major platforms. [1] [2] [3]Makefile Cross-Platform Refactoring:
mdoc/Makefileandmonodoc/Makefileto use conditional logic for Mono invocation and file operations, allowing builds and tests to run natively on Windows without requiring Mono, and handling differences in commands and file paths. [1] [2]mdoc/Makefileto strip trailing carriage returns on Windows, preventing spurious test failures due to line ending differences.Test and Build Artifact Generation:
mdoc/Makefilefor generating or copying test DLLs depending on the OS, ensuring that tests using F#, VB.NET, and C# artifacts work correctly on both Windows and non-Windows environments.Path Handling Fixes:
MDocFileSourceTests.csto handle file paths correctly on Windows by using backslashes instead of forward slashes, ensuring tests pass regardless of platform.General Makefile Improvements:
Makefilefor running checks, improving readability and consistency.