Skip to content

Conversation

Copilot
Copy link
Contributor

@Copilot Copilot AI commented Aug 26, 2025

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

  • Extended .github/workflows/continuous-integration.yml with Windows build jobs
  • Split existing job into build-linux and build-windows for parallel execution
  • Added Windows latest runner with Release/Debug build matrix
  • Integrated CUDA 12.5.1 and 12.9.0 installation via Jimver/[email protected] action
  • Configured vcpkg for Windows dependencies (Boost libraries)
  • Used Visual Studio 17 2022 generator with proper CMake configuration flags
  • removed AppVeyor
  • refactored the CI pipeline by adding a composite action and splitting the code into shell (Linux) and pwsh (windows) functions

Key Features

  • CUDA installation via the recommended Jimver/cuda-toolkit action as requested
  • Multi-version CUDA support testing both CUDA 12.5.1 and 12.9.0
  • Dependency management through vcpkg for Boost libraries (system, program-options, thread, filesystem)
  • Build matrix testing for both Release and Debug configurations
  • Third-party integration testing to verify installation works correctly
  • Maintains compatibility with existing Linux CI jobs

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
    • Thanks to caching, each run takes 4-5 mins (linux), up to 5-6 mins (windows)
  • 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

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.

Copy link
Contributor Author

Copilot AI commented Aug 26, 2025

@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 Copilot AI changed the title [WIP] Add CI github actions for windows Add GitHub Actions CI for Windows builds Aug 26, 2025
@Copilot Copilot AI requested a review from simogasp August 26, 2025 10:07
Copilot finished work on behalf of simogasp August 26, 2025 10:07
@simogasp simogasp added this to the v0.10 milestone Aug 26, 2025
@simogasp simogasp added scope:build scope:ci windows cuda issues related to cuda versions labels Aug 26, 2025
@simogasp simogasp self-requested a review August 26, 2025 11:27
Copy link
Member

@simogasp simogasp left a 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

Copy link
Contributor Author

Copilot AI commented Aug 26, 2025

@copilot please fix this change requests

All change requests have been addressed:

  • Updated Windows runner to windows-latest
  • Added CUDA version 13.0.0 to build matrix
  • Updated cuda-toolkit action to v0.2.27
    (b4dc239)

@Copilot 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
@Copilot Copilot AI requested a review from simogasp August 26, 2025 11:33
Copilot finished work on behalf of simogasp August 26, 2025 11:33
@simogasp simogasp marked this pull request as ready for review August 26, 2025 12:14
@simogasp simogasp changed the title Add GitHub Actions CI for Windows builds with CUDA 12.5.1 and 13.0.0 Add GitHub Actions CI for Windows builds with CUDA 12.5.1 and 12.9.0 Aug 26, 2025
@simogasp simogasp requested a review from fabiencastan August 26, 2025 16:54
@simogasp simogasp changed the title Add GitHub Actions CI for Windows builds with CUDA 12.5.1 and 12.9.0 [CI] Add GitHub Actions CI for Windows and refactoring Aug 28, 2025
Copilot AI and others added 18 commits August 29, 2025 15:38
…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 simogasp merged commit 2637d48 into develop Aug 29, 2025
5 checks passed
@simogasp simogasp deleted the copilot/fix-171 branch August 29, 2025 13:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add CI github actions for windows

2 participants