Skip to content

Commit b546641

Browse files
committed
Update codecov configuration to allow partial uploads
1 parent 99ec2a5 commit b546641

File tree

2 files changed

+124
-1
lines changed

2 files changed

+124
-1
lines changed

.werft/build.ts

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,9 @@ import { wipeAndRecreateNamespace, setKubectlContextNamespace, deleteNonNamespac
55
import { issueCertficate, installCertficate } from './util/certs';
66
import { reportBuildFailureInSlack } from './util/slack';
77
import * as semver from 'semver';
8+
import * as util from 'util';
9+
10+
const readDir = util.promisify(fs.readdir)
811

912
const GCLOUD_SERVICE_ACCOUNT_PATH = "/mnt/secrets/gcp-sa/service-account.json";
1013

@@ -163,7 +166,18 @@ export async function build(context, version) {
163166
werft.phase('coverage', 'uploading code coverage to codecov');
164167
const parent_commit = exec(`git rev-parse HEAD^`, { silent: true }).stdout.trim();;
165168
try {
166-
exec(`codecov -N "${parent_commit}" --dir "${coverageOutput}"`);
169+
// if we don't remove the go directory codecov will scan it recursively
170+
exec(`sudo rm -rf go`);
171+
const coverageFiles = await readDir(coverageOutput);
172+
for (let index = 0; index < coverageFiles.length; index++) {
173+
const file = coverageFiles[index];
174+
if (file.indexOf("-coverage.out") == -1) {
175+
continue
176+
}
177+
let flag = file.substring(0, file.length - "-coverage.out".length);
178+
exec(`codecov -N "${parent_commit}" --flags=${flag} --file "${coverageOutput}/${file}"`);
179+
}
180+
167181
werft.done('coverage');
168182
} catch (err) {
169183
werft.fail('coverage', err);

codecov.yml

Lines changed: 109 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,109 @@
1+
# curl --data-binary @codecov.yml https://codecov.io/validate
2+
codecov:
3+
require_ci_to_pass: yes # wait for all other statuses to pass before sending its status
4+
branch: main
5+
# strict_yaml_branch: main
6+
7+
coverage:
8+
precision: 2
9+
round: down
10+
range: "40...100" # less than 40% having a red background
11+
12+
comment:
13+
layout: "reach,diff,flags"
14+
behavior: default # update, if exists. Otherwise post new.
15+
require_changes: true # if true: only post the comment if coverage changes
16+
require_base: no # [yes :: must have a base report to post]
17+
require_head: yes # [yes :: must have a head report to post]
18+
19+
flags:
20+
components-blobserve-app:
21+
paths:
22+
- components/blobserve/
23+
components-common-go-lib:
24+
paths:
25+
- components/common-go/
26+
components-content-service-app:
27+
paths:
28+
- components/content-service/
29+
components-dashboard-app:
30+
paths:
31+
- components/dashboard/
32+
components-ee-agent-smith-app:
33+
paths:
34+
- components/ee/agent-smith/
35+
components-ee-kedge-app:
36+
paths:
37+
- components/ee/kedge/
38+
components-ee-ws-scheduler-app:
39+
paths:
40+
- components/ee/ws-scheduler/
41+
components-gitpod-cli-app:
42+
paths:
43+
- components/gitpod-cli/
44+
components-gitpod-protocol-go-lib:
45+
paths:
46+
- components/gitpod-protocol/go/
47+
components-image-builder-app:
48+
paths:
49+
- components/image-builder/
50+
components-licensor-app:
51+
paths:
52+
- components/licensor/
53+
components-local-app-api-go-lib:
54+
paths:
55+
- components/local-app-api/go/
56+
components-local-app-app-linux:
57+
paths:
58+
- components/local-app/
59+
components-registry-facade-app:
60+
paths:
61+
- components/registry-facade/
62+
components-registry-facade-api-go-lib:
63+
paths:
64+
- components/registry-facade-api/
65+
components-service-waiter-app:
66+
paths:
67+
- components/service-waiter/
68+
components-supervisor-app:
69+
paths:
70+
- components/supervisor/
71+
components-supervisor-api-go-lib:
72+
paths:
73+
- components/supervisor-api/go/
74+
components-workspacekit-app:
75+
paths:
76+
- components/workspacekit/
77+
components-ws-daemon-api-go-lib:
78+
paths:
79+
- components/ws-daemon-api/go/
80+
components-ws-daemon-nsinsider-app:
81+
paths:
82+
- components/ws-daemon/nsinsider/
83+
components-ws-daemon-seccomp-profile-installer-app:
84+
paths:
85+
- components/ws-daemon/seccomp-profile-installer/
86+
components-ws-daemon-app:
87+
paths:
88+
- components/ws-daemon/
89+
components-ws-manager-bridge-app:
90+
paths:
91+
- components/ws-manager-bridge/
92+
components-ws-manager-app:
93+
paths:
94+
- components/ws-manager/
95+
dev-blowtorch-app:
96+
paths:
97+
- dev/blowtorch/
98+
dev-loadgen-app:
99+
paths:
100+
- dev/loadgen/
101+
dev-poolkeeper-app:
102+
paths:
103+
- dev/poolkeeper/
104+
dev-sweeper-app:
105+
paths:
106+
- dev/sweeper/
107+
dev-version-manifest-app:
108+
paths:
109+
- dev/version-manifest/

0 commit comments

Comments
 (0)