-
Notifications
You must be signed in to change notification settings - Fork 172
Expand file tree
/
Copy pathcodecov.yml
More file actions
89 lines (84 loc) · 4.13 KB
/
Copy pathcodecov.yml
File metadata and controls
89 lines (84 loc) · 4.13 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
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
# Codecov configuration for apache/texera. CI uploads 11 flags: frontend,
# amber, amber-integration, pyamber, agent-service, and the six platform
# services (config-service, access-control-service, file-service,
# computing-unit-managing-service, workflow-compiling-service,
# notebook-migration-service). Without an explicit config, defaults bite us
# in three places that this file fixes:
# 1. Single-stack PRs leave non-uploaded flags as `?` in the comment and
# drop them from the rollup; carrying forward the base-branch report
# backfills them.
# 2. Coverage of generated code (protobuf), build output, and the
# tests themselves dilutes the "real" coverage figure. Ignore
# those paths.
# 3. Default status checks fail on any project drop and require 100%
# patch coverage, so non-test refactors get a red Codecov check
# even when behavior is preserved. Allow 1% slack on project and
# require 60% patch coverage.
flag_management:
default_rules:
# If the current PR didn't run the job for a given flag, inherit
# the latest report on the base branch instead of showing `?`.
carryforward: true
ignore:
# Generated protobuf — line counts swamp real code.
- "amber/src/main/python/proto/**"
- "frontend/src/app/common/type/proto/**"
- "**/src_managed/**" # sbt JOOQ / scalapb-generated sources
# Build / install output — never source-of-truth.
- "**/target/**"
- "frontend/dist/**"
- "frontend/.angular/**"
# Test files don't count toward source coverage.
- "**/test_*.py"
- "**/*.spec.ts"
- "**/src/test/**" # sbt test source roots
# Third-party vendored sources. These mirror the corresponding entries
# in .licenserc.yaml — we don't maintain them, so their coverage figure
# carries no signal.
- "common/workflow-operator/src/main/scala/com/kjetland/**" # MIT JSON schema generator
- "frontend/src/app/common/formly/array.type.ts" # MIT ngx-formly derived
- "frontend/src/app/common/formly/object.type.ts"
- "frontend/src/app/common/formly/multischema.type.ts"
- "frontend/src/app/common/formly/null.type.ts"
- "pyright-language-service/src/main.ts" # MIT monaco-languageclient derived
- "pyright-language-service/src/language-server-runner.ts"
- "pyright-language-service/src/server-commons.ts"
coverage:
status:
project:
default:
# Don't drop below the base-branch baseline, but tolerate
# ≤1% jitter from re-runs / flaky tests / ignore-rule churn.
target: auto
threshold: 1%
patch:
default:
# Require new/changed lines in a PR to be at least 60% covered.
# Lower than a 100%-patch policy so legitimate refactors and
# config-only changes aren't blocked, but high enough that net-new
# code ships with tests. The 10% threshold softens the quantization
# on tiny diffs (e.g. a 2-coverable-line change passes at 1 line /
# 50%) — patch passes when coverage is >= target - threshold = 50%.
target: 60%
threshold: 10%
comment:
# CI is label-gated: a single-stack PR (e.g. a frontend-only change)
# uploads only its own flag. carryforward backfills the rest from main;
# this surfaces those carried rows (rendered `<ø>`) instead of hiding
# them, so every PR's table lists all flags.
show_carryforward_flags: true