chore: Simplify CI workflow and dependency management

- Removed vcpkg from the CI workflow, transitioning to FetchContent for dependency management.
- Updated the build matrix to eliminate the Windows x86 build due to cpp-httplib incompatibility.
- Streamlined installation steps for dependencies across different operating systems.
- Enhanced CMake configuration for improved clarity and efficiency in the build process.
- Updated documentation to reflect changes in CI/CD pipeline and dependency handling.
This commit is contained in:
scawful
2025-10-09 08:07:20 -04:00
parent 7310fe5e00
commit 08ddcf8660
2 changed files with 130 additions and 95 deletions

View File

@@ -7,6 +7,20 @@
## Recent CI/CD Fixes (October 9, 2025)
### Overview
Multiple CI/CD pipeline failures have been resolved by simplifying dependency management and removing problematic configurations.
**Key Changes:**
- ✅ Removed vcpkg from CI workflow (use FetchContent instead)
- ✅ Removed Windows x86 build (cpp-httplib incompatibility)
- ✅ Added Windows macro pollution prevention
- ✅ Simplified vcpkg.json (no baseline)
---
## Recent CI/CD Fixes (October 9, 2025)
### Issue #1: vcpkg Version Database Errors
**Problem:**
@@ -22,10 +36,31 @@ error: no version database entry for zlib at 1.3.1
**Fix:**
- Removed `builtin-baseline` from `vcpkg.json`
- Synchronized CI workflow to use stable vcpkg commit: `c8696863d371ab7f46e213d8f5ca923c4aef2a00`
- vcpkg now uses default versions available at that commit
- **Removed vcpkg entirely from CI workflow** - now uses FetchContent for all dependencies
- macOS: Uses FetchContent with Homebrew-installed tools (ninja, pkg-config)
- Windows: Uses FetchContent (no vcpkg dependency)
- Linux: Uses system packages (unchanged)
**Result:** ✅ Package version mismatches resolved
**Result:** ✅ Package version mismatches resolved, CI builds simplified
### Issue #1b: macOS yaml-cpp CMake Version Incompatibility
**Problem:**
```
CMake Error: Compatibility with CMake < 3.5 has been removed from CMake.
```
**Root Cause:**
- Old vcpkg commit had yaml-cpp version requiring CMake < 3.5
- GitHub Actions runner has CMake 4.1.1 which dropped support for old CMake versions
- vcpkg yaml-cpp package couldn't build
**Fix:**
- Removed vcpkg from macOS CI builds
- Now uses FetchContent to fetch yaml-cpp 0.8.0 directly (configured in `cmake/` files)
- CMake files already had fallback to FetchContent when yaml-cpp not found via package config
**Result:** ✅ yaml-cpp builds successfully via FetchContent
---