From 7ab99be71128cd0210c825dd7517b3ff09cf2107 Mon Sep 17 00:00:00 2001 From: Davide Faconti Date: Fri, 29 May 2026 14:07:30 +0200 Subject: [PATCH] ci(macos): pass --update to conan install for recipe-revision resilience MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit macOS has no prebuilt plotjuggler_core binary in Cloudsmith (the core release job publishes only a Linux binary), so every macOS run builds core from source. When a core version is re-published (its recipe revision changes on the remote), a restored Conan cache can keep pointing at the superseded revision, whose exported sources no longer exist — yielding "exports_sources but sources not found in local cache" and a hard failure. --update forces re-resolution of the current recipe revision + sources from the remote on every run. Co-Authored-By: Claude Opus 4.8 (1M context) --- .github/workflows/ci-macos.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-macos.yml b/.github/workflows/ci-macos.yml index 9cf5afd1..4a565361 100644 --- a/.github/workflows/ci-macos.yml +++ b/.github/workflows/ci-macos.yml @@ -42,7 +42,15 @@ jobs: - name: Build & Test shell: bash run: | - conan install . --output-folder=build --build=missing -s build_type=Release \ + # --update: re-resolve the latest recipe revision (and its sources) from + # the remote rather than trusting whatever revision is in the restored + # Conan cache. macOS has no prebuilt plotjuggler_core binary in Cloudsmith + # (the core release job publishes only a Linux binary), so it always builds + # core from source. Without --update, a cached recipe revision that was + # superseded on the remote — e.g. after a version is re-published — leaves + # the cache pointing at sources that "no longer exist", and the build dies + # with "exports_sources but sources not found in local cache". + conan install . --output-folder=build --build=missing --update -s build_type=Release \ -s compiler.cppstd=20 -c tools.cmake.cmaketoolchain:generator=Ninja cmake -S . -B build/Release -G Ninja \