From 7f0227c495c01d984ac568aa936dc4097a351fb8 Mon Sep 17 00:00:00 2001 From: Claude Date: Sat, 8 Aug 2026 14:21:47 +0000 Subject: [PATCH] build(workflows): install Cephes deps in `random_benchmarks.yml` The job "Run random benchmarks" on workflow `random_benchmarks` has failed on 8 of its last 9 daily scheduled runs against develop, always on unrelated commits, with: cc1: fatal error: .../deps/build/moshier_cephes/cephes/double/ expn.c: No such file or directory Root cause: several packages ship a Cephes-comparison C benchmark under benchmark/c/cephes/ (e.g. math/base/special/sinh). These require the vendored Cephes sources, fetched via the `install-deps-cephes` Make target into deps/build/moshier_cephes/. tools/make/lib/benchmark/ c.mk always points the benchmark build at that directory via the CEPHES/CEPHES_SRC variables, but no workflow in .github/workflows/ ever ran `install-deps-cephes`, and `benchmark-random-c`'s only prerequisite is $(NODE_MODULES). Whenever the random 10-package draw included a Cephes-comparison benchmark, the build failed. This commit adds an "Install Cephes dependencies" step, running `make install-deps-cephes` with the repo's standard triple-retry pattern for network-dependent installs, before the C benchmarks step. `install-deps-cephes` chains download, checksum verification, and extraction, matching the target already used by the run_affected_benchmarks workflow's own script for the same purpose. Ref: https://github.com/stdlib-js/stdlib/actions/runs/31229597363 --- .github/workflows/random_benchmarks.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/workflows/random_benchmarks.yml b/.github/workflows/random_benchmarks.yml index 2ef996857368..115662017c6f 100644 --- a/.github/workflows/random_benchmarks.yml +++ b/.github/workflows/random_benchmarks.yml @@ -88,6 +88,12 @@ jobs: make benchmark-random-javascript RANDOM_SELECTION_SIZE=50 BUILD_ADDONS=1 timeout-minutes: 60 + # Install Cephes dependencies (required by C benchmarks which compare against the Cephes math library; accounting for possible network failures when downloading): + - name: 'Install Cephes dependencies' + run: | + make install-deps-cephes || make install-deps-cephes || make install-deps-cephes + timeout-minutes: 15 + # Run C benchmarks: - name: 'Run C benchmarks' run: |