-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathcodecov.yml
More file actions
76 lines (71 loc) · 2.82 KB
/
Copy pathcodecov.yml
File metadata and controls
76 lines (71 loc) · 2.82 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# Codecov configuration — info-only, never a CI gate.
#
# Background: PANIC_AUDIT_AND_LINT_HARDENING_PLAN.md Stage 2.5
# (audit-site coverage check) added cargo-llvm-cov tooling but the
# project's existing `TEST_COVERAGE_PLAN.md` / `TEST_COVERAGE_PLAN_2.md`
# both explicitly reject line / branch coverage percentage targets
# ("reward testing trivial getters at the expense of real
# invariants"). Codecov's default behavior is to fail PR status
# checks when coverage drops below a target; that contradicts the
# project stance. The settings below make every status check
# `informational: true` so the dashboard and PR comments still
# surface the data but the check never blocks a merge.
coverage:
# Round to whole percent in the dashboard. Sub-percent precision
# is noise — what matters is the per-PR delta visible in the
# commit comment.
round: nearest
precision: 0
status:
# Project-wide coverage delta on the PR. `target: auto` compares
# against the base commit; `informational: true` posts the
# number as a comment / status, never as a required check.
project:
default:
target: auto
threshold: 5%
informational: true
only_pulls: false
# Patch coverage = coverage of just the lines this PR touched.
# Useful signal ("did the change land with tests?") but also
# informational so it doesn't gate.
patch:
default:
target: auto
threshold: 5%
informational: true
only_pulls: true
# Show one PR comment with the project + patch summary. The
# `behavior: default` setting edits the existing comment instead
# of posting a new one per push.
comment:
layout: "reach, diff, flags, files"
behavior: default
require_changes: false
require_base: false
require_head: false
# Skip generated / vendored / external-binding code. Coverage of
# FFI shim crates doesn't reflect substrate quality (the language
# bindings get their own dedicated CI tests; double-counting them
# here just inflates the headline number).
#
# `net/crates/net/src/ffi/**` (the SUBSTRATE-side FFI module, not
# the bindings) is also ignored: every public function there is
# `pub unsafe extern "C" fn` and the real exercise comes from the
# Go / Node / Python binding test suites calling into the compiled
# cdylib. The substrate's own Rust unit tests only cover the parts
# that don't need a live FFI runtime on the other side, so on
# paper the module sits ~43% covered — that's a measurement
# artifact, not a real gap. The actual FFI surface is exercised
# by `go test`, vitest, and pytest in the binding CI jobs.
ignore:
- "net/crates/net/bindings/**"
- "net/crates/net/src/ffi/**"
- "net/crates/net/fuzz/**"
- "net/crates/net/benches/**"
- "net/crates/net/examples/**"
- "net/crates/net/target/**"
- "**/tests/**"
- "go/**"
- "web/**"
- "crew/**"