Skip to content

Use a vcpkg manifest for CI dependencies#923

Open
Symmetricity wants to merge 1 commit into
systemed:masterfrom
Symmetricity:ci/vcpkg-manifest-cache
Open

Use a vcpkg manifest for CI dependencies#923
Symmetricity wants to merge 1 commit into
systemed:masterfrom
Symmetricity:ci/vcpkg-manifest-cache

Conversation

@Symmetricity

Copy link
Copy Markdown
Contributor

AI-generated PR.

Summary

Move the dependencies installed by vcpkg in CI into a checked-in vcpkg.json
manifest.

The Windows and Ubuntu CMake jobs now install from that manifest at a pinned
vcpkg baseline. Their binary cache keys follow the manifest rather than the
whole CI workflow, while retaining the runner image and triplet in the key.
The CMake invocations use an explicit installed directory so the manifest
install and build agree on the dependency location.

This also configures Dependabot to check the vcpkg manifest and GitHub Actions
weekly. The existing version validation ensures that vcpkg.json and the
VERSION file remain in sync.

This follows #915 and does not change tilemaker's runtime behavior.

Rationale

The dependency list was duplicated in two workflow commands. A manifest makes
the dependency set and vcpkg baseline reviewable in one place and lets local or
CI builds reproduce the same package graph.

Hashing the manifest for binary caches avoids rebuilding all dependencies when
an unrelated workflow step changes. Keeping the runner image and triplet in the
cache key prevents incompatible binaries from being restored across toolchain
or platform changes.

Dependabot can now propose dependency and action updates through normal pull
requests instead of requiring manual checks of package names embedded in the
workflow.

Testing

  • actionlint .github/workflows/ci.yml
  • python3 -m json.tool vcpkg.json
  • Verified that vcpkg.json and VERSION both report 3.1.0
  • Resolved the full x64-linux package graph with vcpkg install --dry-run
    at the pinned baseline
  • git diff --check origin/master...HEAD

Move the CI vcpkg package list into vcpkg.json so dependency versions and the builtin baseline are tracked in one place.

Use the manifest files for cache keys, check out the manifest baseline before install, and pass an explicit installed directory to CMake so Windows and Linux CI restore matching binary caches across reruns on the same runner image.

Co-authored-by: Codex <noreply@openai.com>
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