A GitHub Action to set up and run vcpkg for C++ projects with automatic binary caching using GitHub's cache.
run-vcpkg is a GitHub Action that sets up and runs vcpkg, the C++ library manager, within GitHub Actions workflows. It automates the installation of C++ dependencies specified in a vcpkg.json manifest file and leverages binary caching to significantly reduce build times by reusing previously built packages.
C++ developers and teams using GitHub Actions for CI/CD who need a reliable and efficient way to manage external library dependencies in their build pipelines.
It simplifies vcpkg integration by handling caching, error reporting, and log collection automatically, eliminating the need for manual cache configuration and providing a consistent dependency management experience across local and CI environments.
The GitHub Action to setup vcpkg for your C++ based projects. Stores built ports using Binary Caching backed onto GH Cache.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Integrates vcpkg's binary caching with GitHub Action cache, so packages are built once and reused across workflow runs, drastically reducing build times as highlighted in the features.
Automatically parses and annotates errors from CMake, vcpkg, and compilers (gcc, clang, msvc) in the workflow summary, making debugging more efficient without manual log scanning.
Works seamlessly with vcpkg.json manifest files, ensuring consistent dependency versions between local development and CI environments, as recommended in the best practices section.
Supports caching the vcpkg executable itself, which is particularly useful for ARM platforms where prebuilt binaries might not be available, speeding up bootstrap times.
Designed exclusively for GitHub Actions, so it cannot be used with other CI/CD systems, limiting portability and flexibility for teams with multi-platform workflows.
Requires setting up vcpkg as a submodule, using vcpkg.json, and often CMakePresets.json, which can be overwhelming for projects not already structured this way, as noted in the quickstart instructions.
Mandates vcpkg more recent than 2023-03-29, which may force updates or cause compatibility issues with older projects that rely on specific vcpkg versions.
Heavily relies on companion actions like run-cmake for a complete build pipeline, adding dependencies and potential points of failure if those actions change or are deprecated.