[CI] Add GitHub Actions CI for Windows and refactoring#172
Merged
Conversation
Contributor
Author
|
@simogasp 👋 This repository doesn't have Copilot instructions. With Copilot instructions, I can understand the repository better, work faster and produce higher quality PRs. I can generate a .github/copilot-instructions.md file for you automatically. Click here to open a pre-filled issue and assign it to me. I'll write the instructions, and then tag you for review. |
Copilot
AI
changed the title
[WIP] Add CI github actions for windows
Add GitHub Actions CI for Windows builds
Aug 26, 2025
simogasp
previously requested changes
Aug 26, 2025
simogasp
self-requested a review
August 26, 2025 11:27
simogasp
requested changes
Aug 26, 2025
Contributor
Author
Copilot
AI
changed the title
Add GitHub Actions CI for Windows builds
Add GitHub Actions CI for Windows builds with CUDA 12.5.1 and 13.0.0
Aug 26, 2025
simogasp
previously requested changes
Aug 26, 2025
simogasp
marked this pull request as ready for review
August 26, 2025 12:14
simogasp
approved these changes
Aug 26, 2025
simogasp
force-pushed
the
copilot/fix-171
branch
from
August 28, 2025 16:43
d58f4a1 to
71d4c9e
Compare
simogasp
approved these changes
Aug 28, 2025
Co-authored-by: simogasp <1331744+simogasp@users.noreply.github.com>
Co-authored-by: simogasp <1331744+simogasp@users.noreply.github.com>
Co-authored-by: simogasp <1331744+simogasp@users.noreply.github.com>
…cation This commit significantly refactors the GitHub Actions CI workflow to improve efficiency and maintainability while preserving granular step visibility. Key changes: • **Reduced matrix complexity**: Eliminated build_type matrix dimension - Before: 7 total jobs (3 Linux + 4 Windows with matrix combinations) - After: 4 total jobs (2 Linux + 2 Windows containers/CUDA versions) - Each job now builds both Release and Debug configurations sequentially • **Created reusable composite action** (.github/actions/build-config/action.yml) - Single parameterized action handles both Linux and Windows builds - Platform-specific logic controlled by conditional steps - Accepts build-type, platform, and platform-specific parameters • **Extracted build logic into modular scripts**: - .github/scripts/build-linux.sh: Bash functions for Linux builds - .github/scripts/build-windows.ps1: PowerShell functions for Windows builds - Functions: setup_directories, configure_cmake, build_and_install, build_as_third_party • **Preserved step granularity**: Each configuration still shows 4 clear steps - Setup directories → Configure CMake → Build & Install → Test as 3rd party - Failure points remain easily identifiable for debugging • **Maintained conditional logic**: Debug builds still skipped for cuda11.8.0 due to segfault [ci] Add workflow_dispatch trigger for manual workflow execution [ci] Add missing composite action file for build-config The composite action was created but not committed in the previous refactoring commit, causing the workflow to fail with 'action.yml not found'. [ci] Remove unused build-all scripts These scripts were replaced by the composite action approach that calls individual functions to preserve step granularity in CI.
In vcpkg manifest mode, dependencies are installed locally in vcpkg_installed/ Since src/application doesn't have vcpkg.json, we need to point to the main project's vcpkg_installed directory so the third-party build can find the dependencies mainProjectVcpkgInstalled = "$WorkspaceDir/vcpkg_installed"
simogasp
force-pushed
the
copilot/fix-171
branch
from
August 29, 2025 13:38
17b99af to
feb71ed
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.
This PR adds Windows CI support to the existing GitHub Actions workflow, removing AppVeyor configuration, and providing a refactoring of the CI code.
Changes Made
GitHub Actions Workflow Updates
.github/workflows/continuous-integration.ymlwith Windows build jobsbuild-linuxandbuild-windowsfor parallel executionJimver/cuda-toolkit@v0.2.24actionKey Features
Jimver/cuda-toolkitaction as requestedKey changes:
Reduced matrix complexity: Eliminated
build_typematrix dimensionCreated reusable composite action (
.github/actions/build-config/action.yml)Extracted build logic into modular scripts:
.github/scripts/build-linux.sh: Bash functions for Linux builds.github/scripts/build-windows.ps1: PowerShell functions for Windows buildssetup_directories,configure_cmake,build_and_install,build_as_third_partyFixes #171.
Warning
It was not possible to update to the latest version of jimver/cuda-toolkit (0.2.24 is used instead of 0.2.27) and cuda 13 as there is still an issue with caching Jimver/cuda-toolkit#395 (comment)
✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.