Repository navigation
Releases: LegalizeAdulthood/vcpkg-github-cache
Release list
Version 1.5: Reliable BSD vcpkg Tool Caching and Diagnostics
What's Changed
- Improved BSD setup compatibility for current vcpkg on FreeBSD, OpenBSD, and NetBSD.
- Made BSD vcpkg-tool package caching repository-scoped to avoid cross-repo collisions.
- Fixed FreeBSD warm-cache restores caused by stale NuGet HTTP cache data.
- Added setup-log analysis for setup-side vcpkg-tool publish failures.
- Kept package summary links available when GitHub omits package settings metadata.
Full Changelog: v1.4.0...v1.5.0
Version 1.4: NetBSD Support
Version 1.4
Changes Since Version 1.3.0
- Added
target-os: netbsdsupport for emitted VM setup scripts. - Added NetBSD setup handling for bootstrap prerequisites, libcurl compatibility, Mono certificates, cached
vcpkgtool packages, older vcpkg checkout toolchain fallback, and temporary vcpkg-tool source patches. - Fixed cached NetBSD tool restores so they skip bootstrap patching correctly.
- Improved cache analysis for duplicate package pushes by treating "already present" as a successful cold-cache seed case.
- Added an in-repo CMake/vcpkg integration fixture using
fmt. - Added full integration coverage across Ubuntu, Windows, FreeBSD, OpenBSD, and NetBSD.
- Added vcpkg tag resolution plus integration testing across recent vcpkg release tags.
- Added manual full-matrix and scheduled rotating integration workflows.
- Added warm-cache integration checks and assertions for cache status, BSD tool cache behavior, and missing system dependency reports.
- Added canary repository documentation and workflow template.
- Added release qualification documentation.
- Fixed the fixture for newer
fmtby includingfmt/format.h. -
What's Changed
- Add vcpkg version integration coverage and canary release checks by @LegalizeAdulthood in #6
New Contributors
- @LegalizeAdulthood made their first contribution in #6
Full Changelog: v1.3.0...v1.4.0
Version 1.3: BSD VM Support
Version 1.3
Version 1.3 adds BSD VM support for vcpkg GitHub Packages caching.
GitHub JavaScript actions still run on the Ubuntu host, but setup can now emit POSIX shell files that are executed inside a BSD VM. This lets BSD builds use the same GitHub Packages NuGet cache model as Linux and Windows builds while keeping the project build workflow under caller control.
Added
- FreeBSD VM support.
- OpenBSD VM support.
execution-mode: "emit-script"for generating VM-side setup files.target-os: "freebsd"andtarget-os: "openbsd".- Generated setup scripts that configure vcpkg binary caching inside the VM.
- Generated setup environment files that export
VCPKG_BINARY_SOURCES. - VM-side vcpkg bootstrap support.
- VM-side NuGet and Mono setup.
- Cached BSD
vcpkgtool packages, so the VM does not need to rebuild vcpkg from source on every run. - Host-side analysis of VM build logs after copyback.
- BSD examples in the ReadMe, including selective copyback of
build.logandbuild.status.
OpenBSD Notes
OpenBSD required extra compatibility handling beyond FreeBSD. The setup script now handles OpenBSD vcpkg tool metadata, NuGet setup, runtime library paths, and vcpkg's Ninja acquisition assumptions so vcpkg can run reliably in the OpenBSD VM.
Diagnostics
The analyzer now understands more VM build log shapes, including completed guest-side installs, source-built BSD vcpkg tool packages, and missing system dependencies. This improves summaries for BSD builds where the JavaScript action runs on the host but vcpkg runs inside the VM.
Documentation
The ReadMe now includes FreeBSD and OpenBSD VM workflow examples showing the host-action and guest-script split, target-side setup, build log capture, selective copyback, host-side analysis, and build status propagation.
Full Changelog: v1...v1.3.0
Version 1.2
Version 1.2
This patch release improves analyzer reporting for parallel workflow runs that race to upload the same vcpkg package.
Fixed
- Report duplicate upload races as
already presentinstead offailedwhen vcpkg logs a failed NuGet push but GitHub Packages already contains the same package version. - Avoid classifying those duplicate-upload races as upload failures when all failed package submissions are already present.
- Keep explicit denied-write package uploads classified as failed.
Changed
- Parse vcpkg package ABI hashes from build logs.
- Query GitHub package version names during package metadata probes so upload status can be matched against the exact
-vcpkg...package version.
Notes
No workflow input changes are required.
Full Changelog: v1.1.0...v1.2.0
Version 1.1
Version 1.1.0
This release improves analyzer accuracy and makes cache miss summaries more actionable.
Added
- Report packages built from source in the GitHub Step Summary.
- Show built package details as a table with package ID, version, build time, and upload status.
- Link built package IDs to their GitHub Packages settings page when metadata is available.
Fixed
- Avoid false cache misses from CMake and MSBuild log lines such as
Building Custom Rule .... - Avoid false auth failures from CTest test numbers such as
#401and#403. - Prefer complete build-log cache evidence over transient exact-restore probe failures, such as Mono TLS certificate errors.
Notes
There are no workflow input changes required. Existing @v1 users get these diagnostic and classification fixes when the floating v1 tag is updated.
Full Changelog: v1.0.0...v1.1.0
Version 1.0
Version 1
Initial release of vcpkg GitHub Packages Cache.
This release provides a GitHub Action for setting up vcpkg binary caching through GitHub Packages NuGet feeds.
Highlights
- Root setup action for Marketplace use:
LegalizeAdulthood/vcpkg-github-cache@v1 - Optional explicit setup spelling:
LegalizeAdulthood/vcpkg-github-cache/setup@v1 - Analyzer sub-action for diagnostics:
LegalizeAdulthood/vcpkg-github-cache/analyze@v1 - Supports the normal workflow
GITHUB_TOKENpath and explicit PAT mode. - Exports
VCPKG_BINARY_SOURCESfor later workflow steps. - Can bootstrap vcpkg, fetch the vcpkg-selected NuGet tool, and install Mono when needed on Unix runners.
- Reports cache status, restore probes, upload failures, and package permission problems.
- Can upload detailed diagnostics artifacts when debug or trace output is enabled.
Known Limits
GitHub Packages permissions are package-level, not version-level. If a NuGet package was created by another repository or token, this action can identify packages where the current workflow repository lacks write access, but GitHub currently requires those package permissions to be fixed in package settings.
The analyzer links denied package rows to the package settings page to make that manual permission repair easier.
Public GitHub Packages NuGet packages can still require authentication for restore. The default GITHUB_TOKEN path is preferred for normal repository workflows; PAT mode is available for cross-repository or organization feeds but can interact differently with package visibility and quota.
Full Changelog: https://github.com/LegalizeAdulthood/vcpkg-github-cache/commits/v1.0.0