-
-
Notifications
You must be signed in to change notification settings - Fork 28
Expand file tree
/
Copy pathcodecov.yml
More file actions
195 lines (186 loc) · 7.15 KB
/
Copy pathcodecov.yml
File metadata and controls
195 lines (186 loc) · 7.15 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
# -----------------------------------------------------------------------------
# Codecov configuration for piper-plus
# -----------------------------------------------------------------------------
# 段階的導入方針 (Wave 1 / Wave 2):
# - 初期は `informational: true` で status check は出すが merge block しない
# - threshold/precision/round の挙動を local の `[tool.coverage.report]` と
# 一致させ、CI/local 同基準で coverage を観察する
# - target は project=70%, patch=80% (g2p は 80% / 85% で別 flag)
# - M2-M3 で informational 解除 (status を required check 化)
#
# 公式仕様: https://docs.codecov.com/docs/codecov-yaml
# -----------------------------------------------------------------------------
codecov:
# 個別の token を要求しない (public repo)
require_ci_to_pass: true
# CI が遅い時に coverage report が来るのを 12h まで待つ
max_report_age: 12
# PR 上の全コメントは 1 つにまとめる
notify:
after_n_builds: 1
wait_for_ci: true
# -----------------------------------------------------------------------------
# Coverage report parsing
# -----------------------------------------------------------------------------
coverage:
# 表示桁
precision: 2
# 0.5 単位で四捨五入
round: down
# 値域
range: "60...95"
# ---------------------------------------------------------------------------
# Status checks: project / patch
# ---------------------------------------------------------------------------
# 初期段階では `informational: true` で merge block しない。
# M2-M3 で `informational: false` に変更して status を required にする予定。
status:
project:
default:
target: 70%
threshold: 1%
# 既存 base に対して 1% 以上下がったら fail (informational なので block せず)
if_ci_failed: error
informational: true
only_pulls: false
flags:
- python_train
- python_runtime
g2p:
# g2p は独立パッケージで coverage 目標を高めに設定
target: 80%
threshold: 1%
informational: true
flags:
- g2p
paths:
- "src/python/g2p/piper_plus_g2p"
patch:
default:
target: 80%
threshold: 1%
# 新規追加コードは 80% カバーすることを推奨
informational: true
if_ci_failed: error
g2p:
target: 85%
threshold: 1%
informational: true
flags:
- g2p
# ---------------------------------------------------------------------------
# 修正コードの一覧
# ---------------------------------------------------------------------------
notify:
require_ci_to_pass: true
# -----------------------------------------------------------------------------
# Flags: 領域別に coverage を切り分ける
# -----------------------------------------------------------------------------
flags:
python_train:
paths:
- src/python/piper_train/
carryforward: true
python_runtime:
paths:
- src/python_run/piper_plus/
carryforward: true
g2p:
paths:
- src/python/g2p/piper_plus_g2p/
carryforward: true
# -----------------------------------------------------------------------------
# Ignore: coverage 計測対象外
# -----------------------------------------------------------------------------
# `pyproject.toml [tool.coverage.run] omit` と同じ方針で、unit-test 不可能な
# モジュール (CLI / Lightning Trainer / 大規模 data preprocess / network 必須)
# を除外する。 詳細根拠は pyproject.toml のコメント参照。
ignore:
- "**/tests/**"
- "**/test_*.py"
- "**/*_test.py"
- "**/__main__.py"
- "**/conftest.py"
- "src/python/piper_train/vits/monotonic_align/**" # Cython generated
- "**/build/**"
- "**/dist/**"
- ".venv/**"
- "scripts/**"
- "tools/**"
- "docker/**"
- "huggingface-space/**"
- "examples/**"
# 他言語ランタイム (coverage 対象外)
- "src/csharp/**"
- "src/rust/**"
- "src/go/**"
- "src/wasm/**"
- "src/cpp/**"
- "android/**"
# ---- piper_train CLI / 学習エントリ (unit test 不可) ----
- "src/python/piper_train/clean_cached_audio.py"
- "src/python/piper_train/select_speaker.py"
- "src/python/piper_train/filter_utterances.py"
- "src/python/piper_train/voice_conversion.py"
- "src/python/piper_train/f0_extraction.py"
- "src/python/piper_train/infer.py"
- "src/python/piper_train/infer_generator.py"
- "src/python/piper_train/infer_torchscript.py"
- "src/python/piper_train/infer_onnx.py"
- "src/python/piper_train/infer_onnx_streaming.py"
- "src/python/piper_train/export_torchscript.py"
- "src/python/piper_train/export_generator.py"
- "src/python/piper_train/export_onnx.py"
- "src/python/piper_train/export_onnx_streaming.py"
- "src/python/piper_train/update_model_config.py"
- "src/python/piper_train/_resources.py"
- "src/python/piper_train/model_manager.py"
# ---- piper_train Lightning Trainer / data preprocess ----
- "src/python/piper_train/vits/lightning.py"
- "src/python/piper_train/vits/onnx_attention.py"
- "src/python/piper_train/vits/losses.py"
- "src/python/piper_train/vits/config.py"
- "src/python/piper_train/vits/wavfile.py"
- "src/python/piper_train/preprocess.py"
- "src/python/piper_train/tools/prepare_bilingual_dataset.py"
- "src/python/piper_train/tools/prepare_multilingual_dataset.py"
- "src/python/piper_train/tools/convert_fp16.py"
- "src/python/piper_train/tools/convert_nst_dictionary.py"
- "src/python/piper_train/tools/add_prosody_features.py"
# ---- piper_train speaker_encoder train/export (model file 必須) ----
- "src/python/piper_train/speaker_encoder/__init__.py"
- "src/python/piper_train/speaker_encoder/encoder.py"
- "src/python/piper_train/speaker_encoder/audio_utils.py"
- "src/python/piper_train/speaker_encoder/ecapa_tdnn.py"
- "src/python/piper_train/speaker_encoder/evaluate.py"
- "src/python/piper_train/speaker_encoder/export_encoder.py"
# ---- piper_train norm_audio (audio I/O 必須) ----
- "src/python/piper_train/norm_audio/**"
# ---- piper runtime CLI / E2E (unit test 不可) ----
- "src/python_run/piper_plus/__main__.py"
- "src/python_run/piper_plus/webui.py"
- "src/python_run/piper_plus/http_server.py"
- "src/python_run/piper_plus/training_manager.py"
- "src/python_run/piper_plus/download.py"
- "src/python_run/piper_plus/sample_texts.py"
- "src/python_run/piper_plus/phonemize/ssml.py"
# -----------------------------------------------------------------------------
# PR 上に表示するコメント
# -----------------------------------------------------------------------------
comment:
layout: "reach,diff,flags,tree,reach,footer"
behavior: default
require_changes: false
require_base: false
require_head: true
show_carryforward_flags: true
# -----------------------------------------------------------------------------
# Parsers
# -----------------------------------------------------------------------------
parsers:
gcov:
branch_detection:
conditional: true
loop: true
method: false
macro: false