From 70bb7cbb92085783e8b3b3bf1bcf6a6ce4d658ad Mon Sep 17 00:00:00 2001 From: "Joshua D. Drake" Date: Mon, 26 Oct 2026 18:17:37 +0000 Subject: [PATCH] ci: the nightly capability sweep and upgrade guard install from the build job's apt cache #1758 seeded the nightly cluster-test job from ci.yml's build-job apt archive. Two PG 18 jobs still downloaded ~100 MB uncached, most of it the LLVM toolchain postgresql-server-dev-18 pulls in. The capability sweep lost all three 200-second install attempts to a stalled Azure mirror twice: 2026-10-23 (run 39944578717) and 2026-10-26 (run 40367661645, the one that kept #1757 open after #1758). The extension upgrade guard installs the same packages and has the same exposure. Both jobs now restore the newest archive under apt-pgdev-codecs-pg18-, read-only, and install with it as apt's archive cache, exactly as #1758 does. They derive no key and never save, and a miss falls back to the full download. Guards: 839 passed. Verified by dispatching nightly.yml on this branch. Co-Authored-By: Claude Opus 5.5 --- .github/workflows/nightly.yml | 36 +++++++++++++++++++++++++++++++++-- 1 file changed, 34 insertions(+), 2 deletions(-) diff --git a/.github/workflows/nightly.yml b/.github/workflows/nightly.yml index 212b66fd3..d7720adfa 100644 --- a/.github/workflows/nightly.yml +++ b/.github/workflows/nightly.yml @@ -607,10 +607,26 @@ jobs: | sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null .github/scripts/apt-retry.sh 100 3 update + # SEEDED FROM ci.yml's BUILD JOB CACHE, READ-ONLY, as the cluster-test job is + # (#1758). Uncached, this job downloads ~100 MB, most of it the LLVM toolchain + # postgresql-server-dev-18 depends on, and that download stalls: the + # capability sweep failed all three 200-second attempts on 2026-10-23 (run + # 39944578717) and 2026-10-26 (run 40367661645). It derives no key and never + # saves; a miss falls back to the full download. + - name: Restore the build job's PostgreSQL 18 packages, if any + uses: actions/cache/restore@v4 + with: + path: ~/apt-archives + key: apt-pgdev-codecs-pg18-${{ runner.os }}-${{ runner.arch }}- + restore-keys: | + apt-pgdev-codecs-pg18-${{ runner.os }}-${{ runner.arch }}- + - name: Install PostgreSQL 18 and the codec headers run: | set -euo pipefail - .github/scripts/apt-retry.sh 200 3 install -y --no-install-recommends \ + mkdir -p "$HOME/apt-archives/partial" + .github/scripts/apt-retry.sh 200 3 \ + -o Dir::Cache::archives="$HOME/apt-archives" install -y --no-install-recommends \ postgresql-18 postgresql-server-dev-18 \ liblz4-dev libzstd-dev zlib1g-dev @@ -692,10 +708,26 @@ jobs: | sudo tee /etc/apt/sources.list.d/pgdg.list >/dev/null .github/scripts/apt-retry.sh 100 3 update + # SEEDED FROM ci.yml's BUILD JOB CACHE, READ-ONLY, as the cluster-test job is + # (#1758). Uncached, this job downloads ~100 MB, most of it the LLVM toolchain + # postgresql-server-dev-18 depends on, and that download stalls: the + # capability sweep failed all three 200-second attempts on 2026-10-23 (run + # 39944578717) and 2026-10-26 (run 40367661645). It derives no key and never + # saves; a miss falls back to the full download. + - name: Restore the build job's PostgreSQL 18 packages, if any + uses: actions/cache/restore@v4 + with: + path: ~/apt-archives + key: apt-pgdev-codecs-pg18-${{ runner.os }}-${{ runner.arch }}- + restore-keys: | + apt-pgdev-codecs-pg18-${{ runner.os }}-${{ runner.arch }}- + - name: Install PostgreSQL 18, the codec headers, and pyarrow run: | set -euo pipefail - .github/scripts/apt-retry.sh 200 3 install -y --no-install-recommends \ + mkdir -p "$HOME/apt-archives/partial" + .github/scripts/apt-retry.sh 200 3 \ + -o Dir::Cache::archives="$HOME/apt-archives" install -y --no-install-recommends \ postgresql-18 postgresql-server-dev-18 \ liblz4-dev libzstd-dev zlib1g-dev python3-pip sudo pip3 install --break-system-packages --quiet pyarrow \