Skip to content

Replace broken codecov CircleCI orb with direct codecovcli invocation - #435

Merged
PJK merged 2 commits into
masterfrom
bump-codecov-orb
Jul 19, 2026
Merged

Replace broken codecov CircleCI orb with direct codecovcli invocation#435
PJK merged 2 commits into
masterfrom
bump-codecov-orb

Conversation

@PJK

@PJK PJK commented Jul 19, 2026

Copy link
Copy Markdown
Owner

Summary

The codecov/codecov@3.2.2 orb has been failing every CI run at the "Validate Codecov Uploader" step. Its Bash-based uploader tries to verify itself by fetching a GPG signing key over curl, but the URL now returns 32 bytes of non-PGP data:

gpg: no valid OpenPGP data found.
gpg: Total number processed: 0
Exited with code exit status 2

Codecov deprecated that path in favour of the codecovcli-based uploader, shipped in v4/v5 of the orb. Bumping to v5.0.3 skips the broken validation entirely.

Surfaced by #434 (unrelated code change).

Test plan

  • CircleCI green on this branch

PJK and others added 2 commits July 19, 2026 22:43
The old 3.2.2 orb ships a Bash-based uploader whose "Validate Codecov
Uploader" step fetches a GPG key from a Codecov URL that now returns
non-PGP data (32 bytes, no valid OpenPGP), failing the coverage step
on every CI run. v5 uses the codecovcli-based uploader and does not
perform that validation.

Refs: #434 (CI failure surfaced there, unrelated to the PR).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Both v3 and v5 of the codecov CircleCI orb wrap the CLI download with a
GPG signature verification step, and Codecov's PGP key URL now returns
32 bytes of non-PGP data, causing every coverage run to fail.

Install the codecov CLI directly via pip and run upload-process. Fall
back to true on non-zero exit so a Codecov infra outage does not break
CI — coverage is best-effort.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
@codecov

codecov Bot commented Jul 19, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.
✅ Project coverage is 99.94%. Comparing base (9b78da4) to head (643a907).

Additional details and impacted files
@@           Coverage Diff            @@
##           master     #435    +/-   ##
========================================
  Coverage   99.94%   99.94%            
========================================
  Files          20       20            
  Lines        1762     1762            
  Branches        0      224   +224     
========================================
  Hits         1761     1761            
  Misses          1        1            

☔ View full report in Codecov by Harness.
📢 Have feedback on the report? Share it here.

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

@PJK PJK changed the title Bump codecov CircleCI orb to v5.0.3 Replace broken codecov CircleCI orb with direct codecovcli invocation Jul 19, 2026
@PJK
PJK merged commit d436c40 into master Jul 19, 2026
17 checks passed
@PJK
PJK deleted the bump-codecov-orb branch July 19, 2026 22:32
PJK added a commit that referenced this pull request Aug 22, 2026
* Fix CI: swap unreachable cmocka + bazel-key URLs

Two upstream services broke, failing 6 CircleCI jobs on any branch:

- git.cryptomilk.org (cmocka origin) is unreachable from CircleCI
  runners: HTTPS connect times out after 21-135s. Affects
  build-and-test-{win,32b,mips,mipsel,riscv64}. Point at the
  https://github.com/clibs/cmocka mirror instead, which carries the
  same cmocka-1.1.5 tag the config already pins to.

- https://bazel.build/bazel-release.pub.gpg now returns 404 (Bazel
  moved key hosting). Fetch from
  https://storage.googleapis.com/bazel-apt/doc/apt-key.pub.gpg instead,
  which is Bazel's canonical apt-repo key location.

Same class of infra rot as #435 (codecov). No functional change.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

* Pin cmocka clone to 1.1.5 in dockercross + 32b jobs

The clibs/cmocka mirror carries newer commits than cryptomilk's HEAD
did when these clone commands were originally written. Recent cmocka
headers reference int32_t / intmax_t without a stdint include, which
fails compilation on the older toolchains we cross-build with, e.g.:

  /usr/local/include/cmocka.h:2369: error: unknown type name 'int32_t'

The Windows job already pins to cmocka-1.1.5; do the same for the
dockercross and 32-bit jobs to remove HEAD-tracking flakiness across
CI runs.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
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