kubernetes-sigs / kubernetes-sigs/node-feature-discovery

ci: migrate Codecov coverage upload from the deprecated legacy uploader to the Codecov CLI

Open
#2,526 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
1.1k
Forks
317
Avg merge
21h 39m
Merged PRs (30d)
5

Description

## Background

`scripts/test-infra/verify.sh` uploads coverage using the **legacy Codecov bash uploader** (`https://uploader.codecov.io/latest/linux/codecov`) and previously imported its PGP key from `https://keybase.io/codecovsecurity/pgp_keys.asc`.

Both are problematic:
- The Keybase PGP key URL now returns a 32-byte `SELF-SIGNED PUBLIC KEY NOT FOUND` stub (Keybase shutdown), which broke `verify-master` for every PR (fixed as a stopgap by making the upload non-fatal — see the linked PR).
- The legacy uploader itself is **deprecated** by Codecov in favor of the [Codecov CLI](https://docs.codecov.com/docs/codecov-uploader). It will eventually stop working entirely.

## Proposal

Migrate the coverage upload in `verify.sh` to the supported **Codecov CLI** (`cli.codecov.io`), including its integrity-verification flow, while keeping the upload best-effort (non-gating). Validate it works in the Prow `verify-master` job (this is not a GitHub Actions context, so the `codecov-action` is not applicable).

## Why separate

The immediate breakage was fixed minimally (make coverage upload non-fatal) to unblock merges. This modernization is a larger change with more review surface and is tracked here per one-concern-per-PR.

Contributor guide

Open the contributing guide

Research direction

Start with scripts/test-infra/verify.sh and the Codecov CLI documentation, then inspect how the Prow verify-master job invokes the script. Replace the legacy uploader with the CLI and its integrity-verification flow while preserving best-effort, non-gating behavior; done means coverage upload works in verify-master without the deprecated Keybase flow.

Written by the indexing model from the issue text.

Assessment

Tech stack
kubernetes, shell
Domain
ci-cd, devops
Issue type
Refactor
Difficulty
4/5
Estimated time
3-5 days
Activity status
Quiet
Clarity
Mostly clear
Newbie friendliness
55/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.