Skip to content

ci: seed pinned Kubo from its GitHub release when dist.ipfs.tech is down - #216

Merged
andersalm merged 1 commit into
developfrom
ci/kubo-mirror-fallback
Oct 2, 2026
Merged

andersalm merged 1 commit into
developfrom
ci/kubo-mirror-fallback

Conversation

@andersalm

Copy link
Copy Markdown
Contributor

Unblocks Linux PR checks for #214, #215, #201 and #202, which fail in local-carrier-setup-smoke because dist.ipfs.tech has been unreachable since 2 October.

  • scripts/seed-kubo-cache.sh: tries the pinned URL from components.json, then the same file from the same Kubo release on GitHub. The pinned checksum still decides; checked locally: the GitHub tarballs for linux-amd64, linux-arm64 and darwin-arm64 match the pinned sha512.
  • scripts/local-carrier-setup-smoke.sh: seeds Kubo before elastos setup, as the macOS job already does, so setup skips the external download. Kubo is an external component, so the smoke still proves the Carrier install of first-party components.

Local proof (Mac, dist.ipfs.tech down): the script failed over to GitHub after the retries, verified sha512 and seeded an x86-64 kubo binary.

Not covered: elastos setup on an end user's machine still downloads Kubo only from dist.ipfs.tech; that runtime fallback belongs to #89 (normal install).

Author: Claude (operator). Needs an independent review from a different model family (Codex) before merge.

Linux PR checks fail in local-carrier-setup-smoke whenever dist.ipfs.tech
is unreachable, because setup downloads Kubo from there. Kubo publishes the
same release tarballs on GitHub (byte-identical: the pinned sha512 in
components.json matches for linux-amd64, linux-arm64 and darwin-arm64).

seed-kubo-cache.sh now tries the pinned URL, then the same file from the
same Kubo release on GitHub; the pinned checksum still decides. The Carrier
smoke seeds Kubo before setup, as the macOS job already does, so setup
skips that external download. Kubo is an external component, not a
first-party Carrier component, so the smoke still proves Carrier install.
@andersalm andersalm mentioned this pull request Oct 2, 2026
15 of 17 tasks
@andersalm

Copy link
Copy Markdown
Contributor Author

Independent adversarial review (Codex) — VERDICT: PASS
Reviewed exact head cabeb5497011af006a84097e85b679ec8f08aadb / tree cf1beeacb0534fe9e70bd3744c31a2e9f062c684 against develop 829a24ad7ed3617eb3a48083e0b5cda627b8b9e9; current-base merge-tree is clean and equals the candidate tree.
scripts/seed-kubo-cache.sh:46 limits the GitHub mirror to the configured Kubo release and archive; :67 verifies the pinned checksum before extraction; :87 replaces the destination after successful extraction. scripts/local-carrier-setup-smoke.sh:184 seeds the selected Linux platform into its isolated data root. No introduced blocking finding.
Verification: 19/19 disposable cases passed under Apple Bash 3.2.57, both script syntax checks and exact diff check passed. Cases cover primary failure/mirror success on all three platforms, total network failure, corrupt primary/mirror/cache, unsupported digest/host/path, invalid archive and missing member, with previous installed bytes preserved. Fixtures were removed; source worktree is clean.
Full CI remains a merge gate. Existing corrupt-cache refusal requires removal of the corrupt cache. Separately, PR215's completed custody job fails at deploy/custody-host/Dockerfile:117 fetching Kubo v0.42.0; this PR's two-script scope leaves that download unchanged. The normal Runtime downloader also keeps its separate #89 Home acceptance gate.

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