From fabb734b15369c2837b18668fd4f4446ad874c88 Mon Sep 17 00:00:00 2001 From: Andreas Stefl Date: Mon, 31 Aug 2026 08:37:36 +0200 Subject: [PATCH] ci(conan): fetch sources through ConanCenter's backup, not the upstream host MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `uchardet` has no prebuilt binary for the wasm profile, so every wasm run builds it from source, and its tarball lives on freedesktop.org, which answers a GitHub runner with 418 — a bot filter on data-centre IPs, not an outage, so conan's retry loop can never win. The conan cache cannot cover this. A branch sees only its own cache entries and `main`'s, so a first run on a new branch is always cold; and `main` has no wasm entry to fall back on, because `actions/cache` does not save when the job fails and main's wasm job fails on exactly this. The failure prevents the cache that would prevent the failure. `core.sources:download_urls` puts ConanCenter's source backup — the same tarballs, addressed by the sha256 the recipe already declares — ahead of the recipe's own url, for every dependency rather than this one. `origin` stays behind it for sources the backup does not carry. Every workflow already runs `conan config install .github/config/conan` before resolving, so no workflow file changes. Co-Authored-By: Claude Opus 5 (1M context) Claude-Session: https://claude.ai/code/session_017XABfEapaADjFQCt1vjmDF --- .github/config/conan/global.conf | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 .github/config/conan/global.conf diff --git a/.github/config/conan/global.conf b/.github/config/conan/global.conf new file mode 100644 index 000000000..cbd166e99 --- /dev/null +++ b/.github/config/conan/global.conf @@ -0,0 +1,3 @@ +# freedesktop.org answers a runner with 418, so uchardet cannot fetch its +# tarball in CI. `origin` is the fallback for what the backup does not carry. +core.sources:download_urls=["https://c3i.jfrog.io/artifactory/conan-center-backup-sources/", "origin"]