-
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathcodecov.yml
More file actions
210 lines (193 loc) · 5.82 KB
/
codecov.yml
File metadata and controls
210 lines (193 loc) · 5.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
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
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
# Codecov configuration for ps-color-scripts-enhanced
# See: https://docs.codecov.com/docs/codecov-yaml
# Optimized for PowerShell module architecture
# Updated for 2025 Codecov best practices
# yaml-language-server: $schema=https://www.schemastore.org/codecov.json
codecov:
archive:
uploads: true # Keep historical data for analytics
branch: main
max_report_age: off # Disable age check to prevent CI timing issues
notify:
manual_trigger: false # Explicit setting for modern CI/CD pipelines
notify_error: true # Show upload failures in comments
wait_for_ci: true
require_ci_to_pass: true
comment:
behavior: default
hide_project_coverage: false
layout: "header, flags, diff, tree, files, reach, betaprofiling, components,
footer, feedback"
require_base: false # Allow comments on first PR
require_changes: false
require_head: false # Require head report to comment
component_management:
default_rules:
statuses:
- branches:
- "!main"
target: auto
threshold: 2%
type: project
individual_components:
# === CORE MODULE (Highest Coverage Requirements) ===
- component_id: core_module
name: "Core Module"
paths:
- ColorScripts-Enhanced/**
statuses:
- target: 95%
threshold: 1%
type: project
- target: 90%
threshold: 3%
type: patch
# === TEST SUITE (High Coverage - Test Code) ===
- component_id: test_suite
name: "Test Suite"
paths:
- Tests/**
statuses:
- target: 90%
threshold: 2%
type: project
- target: 85%
threshold: 5%
type: patch
# === UTILITY SCRIPTS (Medium Coverage) ===
- component_id: utility_scripts
name: "Utility Scripts"
paths:
- scripts/**
statuses:
- target: 80%
threshold: 3%
type: project
- target: 75%
threshold: 7%
type: patch
# === CONFIGURATION AND BUILD (Lower Coverage) ===
- component_id: configuration
name: "Configuration & Build"
paths:
- package.json
statuses:
- target: 60%
threshold: 5%
type: project
- target: 50%
threshold: 10%
type: patch
coverage:
ignore:
# Build outputs and generated files
- "dist/**/*"
- "**/dist/**/*"
- "coverage/**/*"
- "release/**/*"
# Development and configuration files
- "docs/**/*"
- "**/*.md"
- "**/*.yml"
- "**/*.yaml"
- "**/*.json"
- "**/*.toml"
- "**/*.psd1" # Module manifest, low coverage
- "package.json"
- "package-lock.json"
- "yarn.lock"
- "pnpm-lock.yaml"
# Test files (excluded to avoid counting coverage for the tests themselves)
- "Tests/**/*"
# Script automation and tooling (excluded from totals)
- "scripts/**/*"
- "ColorScripts-Enhanced/Scripts/**/*"
# Static assets
- "assets/**/*"
- "**/*.ans" # ANSI files
- "**/*.txt" # Text files
# Node modules and dependencies
- "node_modules/**/*"
# Generated or third-party
- "types/**/*" # Type definitions
precision: 2
range: "60...100" # Realistic range for PowerShell module
round: down
status:
patch:
default:
only_pulls: false
base: auto
target: 70% # Realistic for new code in PowerShell
threshold: 10%
module:
flags:
- module
paths:
- "ColorScripts-Enhanced/"
target: 95%
threshold: 10%
tests:
flags:
- tests
paths:
- "Tests/"
target: 80%
threshold: 10%
project:
default:
base: auto
if_ci_failed: error
only_pulls: false
target: auto
threshold: 2%
module:
flags:
- module
paths:
- "ColorScripts-Enhanced/"
target: 95% # High target for core module
threshold: 2%
tests:
flags:
- tests
paths:
- "Tests/"
target: 95%
threshold: 3%
flags:
module:
carryforward: true
ignore:
- "Tests/**/*" # Don't include tests in module coverage
- "scripts/**/*"
- "docs/**/*"
paths:
- ColorScripts-Enhanced/
tests:
carryforward: true
ignore:
- "ColorScripts-Enhanced/**/*" # Don't include module in test coverage
paths:
- Tests/
# Modern GitHub integration
github_checks:
annotations: true
parsers:
jacoco:
partials_as_hits: false # More accurate for PowerShell command coverage
cobertura:
handle_missing_conditions: true
partials_as_hits: false
gcov:
branch_detection:
conditional: true
loop: true
macro: false
method: false
javascript:
enable_partials: true
v1:
include_full_missed_files: true
# Modern Slack integration
slack_app: false # Set to true to enable Codecov Slack App notifications