#35722 ci: cache BSD sdk sources separately

ReviewabilityReviewsAgreementSize
#35722 willcl-ark ci: cache BSD sdk sources separatelyAuthor silent 89d0Crickets29 + 91 tests
  • Avoid slow or failing BSD SDK re-downloads in CI when container base image caches miss
  • Cache SDK archives separately so jobs do not depend on external upstream mirrors
  • Needs rebase and author has been silent for 88 days
  • No review verdicts recorded
  • No substantive support or opposition recorded
  • Asked whether the change remains worthwhile, awaiting author reply (sedited)
  • Suggested fallback mirrors as an alternative to CI caching (maflcko)
  • Asked if any CI runs had actually failed from download issues (maflcko)
  • 29 lines added or modified outside tests
  • 91 lines added or modified in tests
  • 69 lines removed in total
  • 6 files, 3 commits
Build and CI#43 of 56
P3 · speedup
  • P3 because avoids slow or failing BSD SDK re-downloads when base container caches miss
  • Modest reliability and speed benefit limited to BSD CI jobs on cache misses
  • Ranking pass: Moved down from 30: author confirms no CI failure has actually been observed, so the benefit is speculative
Reviewability: ReadyStalePaused
Agreement: StrongPositivePositive w/ caveatsNeutralMildDisputedBlockedCrickets
Reviews: current code-review ACKs, then (+stale ACKs) and -NACKs; greener = more ACKs.
Size: lines added or modified outside tests, then in tests; greener = smaller.

Goal

Extracts the BSD SDK archive downloads from the base container image build into a standalone script run inside the container, and caches the SDK downloads using GitHub Actions caching. It also unifies cache source and destination mount definitions in `ci/test/02_run_container.py`.

Problem: When the BSD CI container base image cache misses, CI jobs re-download SDK archives directly from external upstream BSD mirrors, wasting time and risking job failure if those mirrors are unresponsive.

Reviewability

Stale · Author silent 89d

No author activity for 89 days; a review may wait a long time for a response.

Waiting on (from the thread read):

  • author: response to sedited's inquiry on whether the PR is still worthwhile and rebase 2026-10-31
  • author: rebase requested 2026-09-16
  • author: response on whether the changes are still worthwhile 2026-10-31

Agreement

Crickets

no substantive comment either way

Thread notes: Added maflcko's alternative approach suggestion and question about failure logs, both answered by the author. Added sedited's question on whether the change remains worthwhile, which is currently open. / Added suggestions and questions under schema rules. The PR is waiting on the author for a rebase and to confirm whether the PR remains worthwhile.

Objections, suggestions, and questions:

ReviewerTypeHarm, request, or questionStatusMust beAuthor repliedQuote
maflcko (member)suggestion, approachconsider adding fallback mirrors as an alternative to separate caching in CIanswered · author explained tradeoffs of CI caching versus fallback mirrorsansweredyes2026-08-04: 'An alternative would be to add fallback mirrors (like in depends), but this may be fine as well'
Status from: 2026-08-04: willcl-ark: 'Yeah I'm open to either option too. The nice thing about caching them in CI is that nobody has to update the fallback mirror on each SDK update'
maflcko (member)question, usefulnesswhether there were any specific CI logs where the SDK download failedanswered · author confirmed there were no failure logs, only needless re-downloadsansweredyes2026-08-04: 'Do you recall any CI logs where the download failed?'
Status from: 2026-08-04: willcl-ark: 'I do not, it was just the re-downloading them needlessly which prompted this change.'
sedited (member)suggestion, usefulnessclarify whether the changes here are still worthwhileopenansweredno2026-10-31: 'do you still think the changes here are worthwhile?'

Participants:

  • maflcko (member, question, 2 statements 2026-08-04 to 2026-08-04): suggested fallback mirrors as an alternative and asked if any CI download failures had occurred
  • sedited (member, question, 2 statements 2026-09-16 to 2026-10-31): pinged for rebase and asked if the changes are still worthwhile

Files

160 lines under test/bench/ci.

  • ci/test/02_run_container.py +35/-29
  • ci/test/01_setup_bsd.sh +56/-0
  • ci/test/01_base_install.sh +0/-40
  • .github/actions/cache/restore/action.yml +10/-0
  • .github/actions/configure-environment/action.yml +10/-0
  • .github/actions/cache/save/action.yml +9/-0

Card

The short text the ranking pass compares across PRs.

This PR moves BSD SDK downloads out of the base container image build into a dedicated setup script and caches them via GitHub Actions cache actions, mounting them at container runtime. It avoids redundant downloads from BSD mirrors when the CI container base image cache expires. While useful for CI efficiency, the author confirmed no CI failures have actually been observed from the existing downloads, and maflcko suggested fallback mirrors as an alternate approach. The branch has merge conflicts and is waiting on an author rebase.

Data

dossier JSON · extract JSON · model ledger, generated 2026-11-01T01:16, confidence high, input hash 6488bec0c25b50e6
thread read through 2026-10-31 (6 statements), head cd4b34c58d
labels: Tests, Needs rebase

Categories

Build and CI

P3 · speedup (ranking pass: Moved down from 30: author confirms no CI failure has actually been observed, so the benefit is speculative)

Prevents slow and potentially failing re-downloads of external BSD SDK archives when the CI base image cache misses. The description notes this avoids 'wasting time and risking job failure if those mirrors are unresponsive', providing a useful improvement to CI turnaround and reliability.

Membership: Modifies CI container scripts under ci/test/ and GitHub Actions cache configurations in .github/actions/.

Factors: security/stability 0, bug 0, performance 1, user value 0, leverage 0