Skip to content

Update CI to use lukka/run-cmake@v10 with CMakePresets and add MSVC s… - #453

Merged
Sapd merged 5 commits into
masterfrom
CI-Fix
Jan 7, 2026
Merged

Sapd merged 5 commits into
masterfrom
CI-Fix

Conversation

@Sapd

@Sapd Sapd commented Jan 7, 2026

Copy link
Copy Markdown
Owner

…upport

build.yml:

  • Replace lukka/run-cmake@v3 with v10 using CMakePresets
  • Add concurrency control to cancel in-progress runs
  • Add 30-minute timeout to prevent hung builds
  • Remove unused triplet variables and debug steps

continuos-release.yml:

  • Replace lukka/run-cmake@v3 with v10 using CMakePresets
  • Add Windows MSVC builds alongside MinGW (users get both options)
  • Add vcpkg integration for MSVC dependencies (hidapi, getopt)
  • Add GCC 13 installation for Linux (required for C++20)
  • Add lukka/get-cmake for modern CMake/Ninja
  • Add dependency caching (apt, Homebrew, vcpkg)
  • Add binary stripping to reduce release size
  • Add SHA256 checksums with cross-platform support
  • Add tests to all platforms before release packaging
  • Replace crowbarmaster/GH-Automatic-Releases with ncipollo/release-action
  • Add auto-generated changelog organized by platform
  • Add concurrency control, fail-fast: false, 30-min timeout
  • Add 90-day artifact retention, explicit permissions
  • Fix path triggers for C++ rewrite structure
  • Fix macOS architecture label: x86_64 -> arm64 (macos-latest uses M1)
  • Fix PowerShell sha256 output to use Unix line endings

check-whitespace.yml:

  • Update actions to v4/v7, fix deprecated ::set-output
  • Update bot comments instead of spamming new ones
  • Add explicit permissions, reopened trigger, step summary
  • Add clear "how to fix" instructions

clang-format.yml:

  • Replace DoozyX action with cpp-linter/cpp-linter-action@v2
  • Add .cpp and .hpp extensions (was missing 64 files!)
  • Add path filtering, PR review comments, file annotations
  • Add explicit permissions and step summary

CMakePresets.json (new):

  • Add presets for default (Unix), windows-mingw, windows-msvc
  • Explicit Ninja generator for consistent builds
  • VCPKG_TARGET_TRIPLET=x64-windows-static for standalone MSVC exe (no DLLs)

vcpkg.json (new):

  • Manifest for MSVC dependencies (hidapi, getopt)
  • getopt only required on Windows platform

Sapd added 2 commits January 7, 2026 21:38
…upport

build.yml:
- Replace lukka/run-cmake@v3 with v10 using CMakePresets
- Fix double runs: change trigger from [push, pull_request] to push on master + pull_request
- Add Windows MinGW to PR testing (catches Windows-breaking PRs before merge)
- Add concurrency control and 30-minute timeout
- Use Ninja for Windows builds (faster than Make)

continuos-release.yml:
- Replace lukka/run-cmake@v3 with v10 using CMakePresets
- Add Windows MSVC builds alongside MinGW (users get both options)
- Add vcpkg integration for MSVC dependencies (hidapi, getopt)
- Add GCC 13 installation for Linux (required for C++20)
- Add lukka/get-cmake for modern CMake/Ninja
- Add dependency caching (apt, Homebrew, vcpkg)
- Add binary stripping to reduce release size
- Add SHA256 checksums with cross-platform support
- Add tests to all platforms before release packaging
- Replace crowbarmaster/GH-Automatic-Releases with ncipollo/release-action
- Add auto-generated changelog organized by platform
- Add concurrency control, fail-fast: false, 30-min timeout
- Add 90-day artifact retention, explicit permissions
- Fix path triggers for C++ rewrite structure
- Fix macOS architecture label: x86_64 -> arm64 (macos-latest uses M1)
- Fix PowerShell sha256 output to use Unix line endings

check-whitespace.yml:
- Update actions to v4/v7, fix deprecated ::set-output
- Update bot comments instead of spamming new ones
- Add explicit permissions, reopened trigger, step summary
- Add clear "how to fix" instructions

clang-format.yml:
- Replace DoozyX action with cpp-linter/cpp-linter-action@v2
- Add .cpp and .hpp extensions (was missing 64 files!)
- Add path filtering, PR review comments, file annotations
- Add explicit permissions and step summary

CMakePresets.json (new):
- Add presets for default (Unix), windows-mingw, windows-msvc
- Explicit Ninja generator for consistent builds
- VCPKG_TARGET_TRIPLET=x64-windows-static for standalone MSVC exe (no DLLs)

vcpkg.json (new):
- Manifest for MSVC dependencies (hidapi, getopt)
- getopt only required on Windows platform
Pin all action dependencies to their full commit SHA
- Use manual copy loop instead of std::copy_n in getInputReport mock
  to work around potential MinGW std::span/copy_n interaction issues
- Cast ASSERT_EQ values to int for proper printing of uint8_t values
  (prevents null byte characters from showing as empty)
Sapd added 2 commits January 7, 2026 22:10
clang-format workflow:
- Use tidy-checks: '-*' to properly disable clang-tidy (empty string
  doesn't disable it)
- Check format-checks-failed instead of checks-failed to only fail
  on actual formatting issues, not clang-tidy warnings

test_hid_interface.cpp:
- Use push_back instead of initializer list assignment for MinGW
  compatibility in testMockInputReport
- Add assertion to verify read_response size before testing
- Add assertion to verify return value (bytes copied)
- Cast ASSERT_EQ values to int for proper uint8_t display
The Windows MinGW build is already handled by build.yml matrix.
This eliminates duplicate CI runs for Windows builds.
@sonarqubecloud

sonarqubecloud Bot commented Jan 7, 2026

Copy link
Copy Markdown

@Sapd
Sapd merged commit a317e6b into master Jan 7, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant