Repository navigation
Expand file tree
/
Copy pathcodecov.yml
More file actions
149 lines (142 loc) · 4.81 KB
/
Copy pathcodecov.yml
File metadata and controls
149 lines (142 loc) · 4.81 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
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
# SPDX-FileCopyrightText: © 2025 StreamKit Contributors
#
# SPDX-License-Identifier: MPL-2.0
# Codecov configuration. The project and patch checks below report red
# on threshold violations. The `All Checks Passed` gate in
# `.github/workflows/ci.yml` polls these check runs and fails the
# required check when any threshold is violated, so coverage regressions
# block merge even though the coverage jobs use `continue-on-error: true`.
#
# Status-stringency ratchet (separate from the coverage-sprint phases
# tracked in agent_docs/coverage.md):
# Stage 1: informational: true, threshold: 100% (silent)
# Stage 2 (current): project flags surface red, threshold: 1%
# (any coverage drop >1% reports red)
# Stage 3 (current): patch.default surfaces red, target: 80%
# (new / changed code below 80% reports red)
# Stage 4 (future): tighten component_management default_rules from
# informational to red-surfacing once `engine`,
# `nodes`, and `server` are consistently above
# 80%.
# Merge-gate wiring: the `all-checks` job now polls Codecov check
# runs and fails on violations (PR #487).
# Stage transitions are intentionally manual — edit this file and remove
# `informational: true` / tighten `threshold` / `target` as the baseline
# settles. The `backend` and `ui` flag totals on the Codecov dashboard are
# the headline numbers to watch when deciding when to advance.
codecov:
require_ci_to_pass: false
coverage:
precision: 2
round: down
status:
project:
backend:
flags:
- backend
target: auto
threshold: 1%
ui:
flags:
- ui
target: auto
threshold: 1%
patch:
default:
target: 80%
threshold: 0%
# Flags are project-level rollups uploaded from CI (one per workflow).
# Their `paths` are intentionally broader than the named components below:
# anything under `apps/` or `crates/` not covered by a specific component
# still contributes to the `backend` flag total. Components are the
# granular signal; flags are the headline number.
flag_management:
default_rules:
carryforward: true
individual_flags:
- name: backend
paths:
- apps/
- crates/
- name: ui
paths:
- ui/src/
# Components below cover the core/engine/api/nodes/server hot paths plus
# the two plugin crates and the most-tested UI subtrees. Code under
# `apps/skit-cli/`, `sdks/`, and the plugin/native workspaces is excluded
# from coverage entirely (see the `ignore` block at the bottom) because
# those workspaces are either thin protocol wrappers, vendored, or not
# built in the standard CI matrix. Add new components here as new
# subsystems land — keep the list small to make the dashboard readable.
component_management:
default_rules:
statuses:
- type: project
target: auto
threshold: 100%
informational: true
individual_components:
- component_id: core
name: core
paths:
- crates/core/**
- component_id: engine
name: engine
paths:
- crates/engine/**
- component_id: api
name: api
paths:
- crates/api/**
- component_id: nodes
name: nodes
paths:
- crates/nodes/**
- component_id: server
name: server
paths:
- apps/skit/**
- component_id: plugin-native
name: plugin-native
paths:
- crates/plugin-native/**
- component_id: plugin-wasm
name: plugin-wasm
paths:
- crates/plugin-wasm/**
- component_id: ui-services
name: ui-services
paths:
- ui/src/services/**
- ui/src/hooks/**
- ui/src/stores/**
- component_id: ui-components
name: ui-components
paths:
- ui/src/components/**
comment:
layout: "header, diff, flags, components, files"
behavior: default
# Now that the Codecov check runs report red on threshold violations,
# the bot only needs to comment when coverage actually changed —
# otherwise PRs with no covered files get noisy "no change" comments.
require_changes: true
ignore:
- "**/generated/**"
- "**/benches/**"
- "**/examples/**"
- "tests/pipeline-validation/**"
- "plugins/**"
- "ui/src/types/generated/**"
- "apps/skit-cli/**"
- "sdks/**"
- "docs/**"
# Boilerplate / infrastructure that cannot be meaningfully unit-tested
# without standing up real subsystems (jemalloc, tracing-subscriber,
# OTel SDK, pprof, wgpu adapter). Excluded after Phase 4 to keep the
# headline `backend` flag focused on testable hot paths.
- "apps/skit/src/main.rs"
- "apps/skit/src/logging.rs"
- "apps/skit/src/telemetry.rs"
- "apps/skit/src/profiling.rs"
- "crates/nodes/src/video/compositor/gpu.rs"