From cb45f87d0a4290db2c4d1783f6dfd6e793dfb144 Mon Sep 17 00:00:00 2001 From: Josh Ventura Date: Thu, 14 May 2026 16:56:23 -0400 Subject: [PATCH] fix(ci): pin vcpkg checkout to tag 2026.04.27 across all entry points MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit setup-vcpkg/action.yml was doing a plain `git clone microsoft/vcpkg` with no checkout, so every CI run landed on whatever master HEAD happened to be that day. That silently shifts port-version ABI hashes between runs, invalidating the binary archive cache that the action set up two steps later. Result: every CI run paid the cold vcpkg-compile cost. Align all four pinning points on tag 2026.04.27 (commit 56bb2411): - third_party/vcpkg submodule - vcpkg-configuration.json baseline - docker/postgres-ext.Dockerfile ARG VCPKG_COMMIT - .github/actions/setup-vcpkg/action.yml (the actual fix — adds the `git checkout` that was missing, plus a `git fetch` for the case where the runner already has a cached vcpkg clone from a prior run) We were previously at 2026.03.18-398 (mid-release); the tagged commit is 144 commits forward of that, so this is a small forward move to a curated port-set, not a rewind. Co-Authored-By: Claude Opus 4.7 (1M context) --- .github/actions/setup-vcpkg/action.yml | 10 ++++++++++ docker/postgres-ext.Dockerfile | 3 ++- third_party/vcpkg | 2 +- vcpkg-configuration.json | 2 +- 4 files changed, 14 insertions(+), 3 deletions(-) diff --git a/.github/actions/setup-vcpkg/action.yml b/.github/actions/setup-vcpkg/action.yml index 6dd43dd..4953895 100644 --- a/.github/actions/setup-vcpkg/action.yml +++ b/.github/actions/setup-vcpkg/action.yml @@ -12,11 +12,21 @@ runs: steps: - name: Install vcpkg shell: bash + env: + # Pin to the same commit as the vcpkg submodule and the Dockerfile + # (vcpkg tag 2026.04.27). Without this checkout the action lands on + # master HEAD, which drifts port-version ABI hashes and silently + # invalidates the binary archive cache between CI runs. + VCPKG_COMMIT: 56bb2411609227288b70117ead2c47585ba07713 run: | if [ ! -d "$HOME/vcpkg" ]; then # Full clone required — Arrow depends on Boost, which needs vcpkg git history git clone https://github.com/microsoft/vcpkg.git "$HOME/vcpkg" + git -C "$HOME/vcpkg" checkout "$VCPKG_COMMIT" "$HOME/vcpkg/bootstrap-vcpkg.sh" -disableMetrics + else + git -C "$HOME/vcpkg" fetch --quiet origin "$VCPKG_COMMIT" || true + git -C "$HOME/vcpkg" checkout "$VCPKG_COMMIT" fi echo "VCPKG_ROOT=$HOME/vcpkg" >> "$GITHUB_ENV" echo "$HOME/vcpkg" >> "$GITHUB_PATH" diff --git a/docker/postgres-ext.Dockerfile b/docker/postgres-ext.Dockerfile index 6dac61e..5414965 100644 --- a/docker/postgres-ext.Dockerfile +++ b/docker/postgres-ext.Dockerfile @@ -22,7 +22,8 @@ RUN apt-get update && apt-get install -y curl ca-certificates gnupg \ # Install vcpkg # Pin to the same commit as the vcpkg submodule for reproducible builds -ARG VCPKG_COMMIT=12159785447291b4069c82a3fe9c2770a393ac7f +# (vcpkg tag 2026.04.27). +ARG VCPKG_COMMIT=56bb2411609227288b70117ead2c47585ba07713 RUN git clone https://github.com/microsoft/vcpkg.git /opt/vcpkg \ && git -C /opt/vcpkg checkout "$VCPKG_COMMIT" \ && /opt/vcpkg/bootstrap-vcpkg.sh -disableMetrics diff --git a/third_party/vcpkg b/third_party/vcpkg index 1215978..56bb241 160000 --- a/third_party/vcpkg +++ b/third_party/vcpkg @@ -1 +1 @@ -Subproject commit 12159785447291b4069c82a3fe9c2770a393ac7f +Subproject commit 56bb2411609227288b70117ead2c47585ba07713 diff --git a/vcpkg-configuration.json b/vcpkg-configuration.json index 2103a7c..fc9dc4f 100644 --- a/vcpkg-configuration.json +++ b/vcpkg-configuration.json @@ -1,7 +1,7 @@ { "default-registry": { "kind": "builtin", - "baseline": "12159785447291b4069c82a3fe9c2770a393ac7f" + "baseline": "56bb2411609227288b70117ead2c47585ba07713" }, "overlay-triplets": ["./triplets"], "overlay-ports": ["./overlay-ports"]