Skip to content

Fix macOS CI: disable curl optional deps and bust stale cache#373

Merged
etr merged 1 commit intomasterfrom
fix/macos-ci-curl-nghttp2
Apr 29, 2026
Merged

Fix macOS CI: disable curl optional deps and bust stale cache#373
etr merged 1 commit intomasterfrom
fix/macos-ci-curl-nghttp2

Conversation

@etr
Copy link
Copy Markdown
Owner

@etr etr commented Apr 29, 2026

Summary

  • All five macos-latest jobs in run 24945169734 failed at Install CURL (for testing on mac only). The cached curl-7.75.0 tree (built when macos-latest had a different Homebrew layout) had nghttp2 baked into the configured Makefile; on the current runner (15.7.4 ARM, /opt/homebrew) sudo make install triggers a recompile of altsvc.lo that fails with 'nghttp2/nghttp2.h' file not found.
  • Add --without-nghttp2 --without-libidn2 --without-libssh2 --without-brotli --without-zstd --without-librtmp --without-libpsl --disable-ldap --disable-ldaps to curl's ./configure so the build is deterministic across runner images. Tests only need basic libcurl HTTP — none of these optional features are used.
  • Bump cache key from …-pre-built-v2 to …-pre-built-v3 to discard the broken cache. Same change applied to release.yml.

Test plan

  • Verify Build workflow runs cleanly on all macos-latest matrix entries (gcc/clang × static/dynamic × debug/nodebug).
  • Confirm curl-7.75.0 rebuilds from scratch on first hit (cache miss expected with new key).
  • Confirm subsequent runs hit the new cache and sudo make install succeeds without recompilation errors.

🤖 Generated with Claude Code

curl 7.75.0's configure was auto-detecting nghttp2 from Homebrew on the
runner that built the cache. The cached tree baked in include paths to
that Homebrew layout. On the current macos-latest (15.7.4, ARM,
/opt/homebrew), `sudo make install` triggers a recompile of altsvc.lo
that fails with `'nghttp2/nghttp2.h' file not found`.

Disable nghttp2 and other optional library auto-detection (libidn2,
libssh2, brotli, zstd, librtmp, libpsl, ldap) so the build is
deterministic across runner images. Tests only use basic libcurl HTTP.
Cache key bumped to v3 to discard the broken cache.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@codecov
Copy link
Copy Markdown

codecov Bot commented Apr 29, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 68.03%. Comparing base (d8b055e) to head (983dc04).
⚠️ Report is 1 commits behind head on master.

Additional details and impacted files

Impacted file tree graph

@@           Coverage Diff           @@
##           master     #373   +/-   ##
=======================================
  Coverage   68.03%   68.03%           
=======================================
  Files          34       34           
  Lines        1730     1730           
  Branches      697      697           
=======================================
  Hits         1177     1177           
  Misses         80       80           
  Partials      473      473           

Continue to review full report in Codecov by Sentry.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d8b055e...983dc04. Read the comment docs.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

@etr etr merged commit 8b6aeb0 into master Apr 29, 2026
44 checks passed
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