Skip to content

[CI] Add GitHub Actions CI for Windows and refactoring#172

Merged
simogasp merged 18 commits into
developfrom
copilot/fix-171
Aug 29, 2025
Merged

[CI] Add GitHub Actions CI for Windows and refactoring#172
simogasp merged 18 commits into
developfrom
copilot/fix-171

Conversation

Copilot AI commented Aug 26, 2025

Copy link
Copy Markdown
Contributor

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/cuda-toolkit@v0.2.24 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.

Copilot AI commented Aug 26, 2025

Copy link
Copy Markdown
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
Copilot AI requested a review from simogasp August 26, 2025 10:07
Comment thread .github/workflows/continuous-integration.yml Outdated
Comment thread .github/workflows/continuous-integration.yml Outdated
Comment thread .github/workflows/continuous-integration.yml Outdated
@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

@simogasp simogasp left a comment

Copy link
Copy Markdown
Member

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

Comment thread .github/workflows/continuous-integration.yml Outdated
Comment thread .github/workflows/continuous-integration.yml Outdated

Copilot AI commented Aug 26, 2025

Copy link
Copy Markdown
Contributor Author

@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 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 AI requested a review from simogasp August 26, 2025 11:33
Comment thread .github/workflows/continuous-integration.yml Outdated
Comment thread .github/workflows/continuous-integration.yml Outdated
@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
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
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