From 0774706caaf13a712cbfc1a5cca5002dd3aa602e Mon Sep 17 00:00:00 2001 From: Claude Date: Fri, 13 Nov 2026 19:59:07 +0000 Subject: [PATCH] Build the coverage leg without DWARF The self-update e2e suites serve the instrumented socket-patch as a release asset, and the updater refuses any binary over its 256 MiB cap. With line-tables-only debug info the instrumented binary is ~274 MB locally, and feat/bazel-support already pushed it over the cap in CI: 8 self-update tests fail in both coverage shards with "exceeds the 268435456-byte cap". coverage is the gating Linux test leg, so the next big feature merge would block the queue. llvm-cov reads the __llvm_cov* sections, not DWARF, and panic locations come from #[track_caller], so dropping debug info changes neither the LCOV nor the failure annotations. The binary drops to ~163 MB. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_011f9aeQEJr2Vxu6jJ5Jh1hH --- .github/workflows/ci.yml | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d9e8812f1..9ba5b3b9b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -692,6 +692,16 @@ jobs: contents: read env: VEXCTL_VERSION: v0.3.0 + # No DWARF in the instrumented build. llvm-cov maps coverage from + # the __llvm_cov* sections, not debug info, and a panic's location + # comes from #[track_caller], so neither the LCOV nor the failure + # annotations change. The self-update e2e suites serve this very + # binary as a release asset, and the updater refuses one over its + # 256 MiB cap (MAX_BINARY_BYTES in update/download.rs). With + # line-tables-only the instrumented socket-patch was ~274 MB + # locally (~107 MB of it .debug_*), and feat/bazel-support crossed + # the cap in CI; without DWARF it is ~163 MB. + CARGO_PROFILE_DEV_DEBUG: '0' steps: - name: Checkout uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2