-
Notifications
You must be signed in to change notification settings - Fork 123
[CI] Add GitHub Actions CI for Windows and refactoring #172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
@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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@copilot please fix this change requests
d58f4a1
to
71d4c9e
Compare
Co-authored-by: simogasp <[email protected]>
Co-authored-by: simogasp <[email protected]>
Co-authored-by: simogasp <[email protected]>
…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"
17b99af
to
feb71ed
Compare
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.yml
with Windows build jobsbuild-linux
andbuild-windows
for parallel executionJimver/[email protected]
actionKey Features
Jimver/cuda-toolkit
action as requestedKey changes:
Reduced matrix complexity: Eliminated
build_type
matrix 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_party
Fixes #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.