Repository navigation
Expand file tree
/
Copy pathcodecov.yml
More file actions
98 lines (92 loc) · 4.94 KB
/
Copy pathcodecov.yml
File metadata and controls
98 lines (92 loc) · 4.94 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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# Codecov configuration for SharpCoreDB.
#
# Everything here is fed by the `coverage` job in .github/workflows/ci.yml: it runs the three suites
# tools/measure-coverage.ps1 names (SharpCoreDB.Tests, SharpCoreDB.VectorSearch.Tests,
# SharpCoreDB.EntityFrameworkCore.Tests), writes one Cobertura report per suite and hands all three to
# `codecov/codecov-action` in a single call. Codecov records that multi-file upload as *one* upload for the
# commit: `/commits/<full-sha>/uploads/` answers `count: 1` with `"flags": []` for the head commit
# 4283626d8235b4e2175097a929a9b0e1613a17b2 (the endpoint wants all 40 characters -- the abbreviated form
# answers 404), so there is exactly one upload to wait for and no `after_n_builds` is set here (waiting for
# three would leave every commit without a comment or a status). The 18% floor is enforced in-job by the
# script before it uploads: these statuses report the trend, they are not the gate.
codecov:
# A commit carries the report of its own push and nothing else, so do not discard it twelve hours later.
max_report_age: off
coverage:
precision: 2
round: down
range: "18...80"
status:
project:
default:
# Allow up to 2% coverage drop before failing the status check.
target: auto
threshold: 2%
base: auto
if_no_uploads: error
if_not_found: success
if_ci_failed: error
patch:
default:
# Require at least 50% of new lines in a PR to be covered.
target: 50%
threshold: 5%
base: auto
if_no_uploads: error
if_not_found: success
if_ci_failed: error
comment:
# `flags` and `components` are deliberately absent from the layout: the uploads carry no flag (see the
# comment on the upload step in ci.yml) and this file defines no `component_management`, so both sections
# could only ever render empty.
layout: "header, diff, tree"
behavior: default
require_changes: true
require_base: false
require_head: true
hide_project_coverage: false
# Ignore files that should not count toward coverage
ignore:
- "tests/**"
- "tools/**"
- "Examples/**"
- "**/Examples/**"
- "**/*.Demo/**"
- "**/Benchmarks/**"
- "**/benchmarks/**"
- "src/SharpCoreDB.AppHost/**"
- "**/*Demo*.cs"
- "**/*Benchmark*.cs"
- "**/*.Designer.cs"
- "**/*.g.cs"
- "**/*.g.i.cs"
- "**/GlobalUsings.cs"
# No `flags:` section on purpose. The upload is unflagged, because a status that names no flag would
# otherwise have no data to read, and a flag that is declared but never uploaded is exactly what the section
# that used to live here was: `/flags/` answers `{"count": 1, "results": [{"flag_name": "unittests",
# "coverage": 0.0}]}` -- one declared flag no upload ever carries (the commit's own upload record reads
# `"flags": []`) and no status reads -- where a flag the suites did fill would answer with their coverage.
# One report per commit needs no flag to tell the suites apart.
#
# Measured *after* this file landed on `master` (merge `b4b9a70d`, 2026-10-13), so that an earlier, inferred
# reading is corrected here instead of repeated: the registry entry outlives the declaration. The commit's own
# upload was processed against this tree -- `/commits/b4b9a70dfd6bb453ff7bcd03a00294be38c0d362/uploads/`
# answers `count: 1`, `"flags": []`, 537 files / 58 907 lines at 04:04:43Z -- and nine minutes later `/flags/`
# still answers `{"count": 1, "results": [{"flag_name": "unittests", "coverage": 0.0}]}`, with
# `/flags/unittests/` live (HTTP 200, carrying a `coverage` link). So that list is driven neither by the
# current contents of this file nor by the head upload's flags: it is a repository-level registry Codecov
# keeps, and no directive in this file deletes an entry from it (deleting a flag is a dashboard action).
# BLOCKED (2026-10-13, outside this repository): the lingering `unittests` registry entry itself -- the same
# class of item as `codecov/project` below, and equally free to leave alone, because no upload carries that
# flag and no status reads it.
#
# Known and deliberately not "fixed" here: `codecov/project` has never been posted in this repository.
# Checked through the GitHub API for the promotion commit `58f297e` (when the current CI first ran, where
# `codecov/patch` still arrived as a legacy commit status), for `204d9f8`, `4283626` and `b6bcf34`, and for
# the three PR heads #446/#447/#448 -- every one of them carries `codecov/patch` and none carries
# `codecov/project`, including the commits whose base *does* have an uploaded report. The declaration above
# is the documented structure, this file validates, and the 18% floor is enforced in-job either way, so the
# missing status is a Codecov-side evaluation, not something this file can turn on (or off).
# BLOCKED (2026-10-12, outside this repository): nothing here can post it; it needs a Codecov
# dashboard/app check, and it costs this project nothing while it is absent (the patch status, the PR
# comment and the in-job 18% floor all still report).