Skip to content

Commit 5496fa9

Browse files
a-waiJenySadadia
authored andcommitted
config: also trigger coverage-report for test jobs
Due to very long processing times, we must post-process coverage results for each job first, then only retrieve and merge those results in the global, kbuild-triggered job. This requires having `coverage-report` jobs to be triggered also when `job` nodes transition to `done`, changing the post-processing node kind to `process` in order to avoid recursively triggering post-processing jobs. Signed-off-by: Arnaud Ferraris <[email protected]>
1 parent 8245c43 commit 5496fa9

File tree

3 files changed

+26
-14
lines changed

3 files changed

+26
-14
lines changed

config/jobs.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,7 @@ jobs:
158158

159159
coverage-report-arm: &coverage-report-job
160160
template: coverage-report.jinja2
161-
kind: job
161+
kind: process
162162
image: ghcr.io/kernelci/{image_prefix}gcc-12:arm-kselftest-kernelci
163163
rules: &coverage-report-rules
164164
arch:

config/runtime/coverage-report.jinja2

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@ class Job(BaseJob):
9797

9898
return {
9999
'node': {
100-
'result': 'pass' if node['id'] == self._node['id'] else node['result'],
100+
'result': 'pass',
101101
'artifacts': {},
102102
},
103103
'child_nodes': child_nodes,
@@ -124,7 +124,10 @@ class Job(BaseJob):
124124
tracefile = coverage_dir + '.json'
125125
json_summary = coverage_dir + '.summary.json'
126126
self._logfile.write(f"--- Processing coverage data for {node['id']} ---\n")
127-
cmd = subprocess.run(self._gcovr_cmd + [
127+
cmd = subprocess.run([
128+
'gcovr',
129+
'--gcov-ignore-parse-errors',
130+
'--root', self._src_path,
128131
'--object-directory', coverage_dir,
129132
'--json', tracefile,
130133
'--json-summary', json_summary,
@@ -185,12 +188,6 @@ class Job(BaseJob):
185188
self._src_path = os.path.join(self._workspace, 'linux')
186189
self._logfile.write(f"Coverage source downloaded from {tarball_url}\n")
187190

188-
self._gcovr_cmd = [
189-
'gcovr',
190-
'--gcov-ignore-parse-errors',
191-
'--root', self._src_path,
192-
]
193-
194191
output_base = os.path.join(self._workspace, f"coverage-{self._node['parent']}")
195192

196193
if parent_node['kind'] == 'job':
@@ -227,13 +224,14 @@ class Job(BaseJob):
227224
# Coverage data has been processed for all job nodes, we can now merge the tracefiles
228225
tracefile = output_base + '.json'
229226
json_summary = output_base + '.summary.json'
230-
args = self._gcovr_cmd
231-
for trace in tracefiles:
232-
args += ['--add-tracefile', trace]
233-
args += [
227+
args = [
228+
'gcovr',
229+
'--root', self._src_path,
234230
'--json', tracefile,
235231
'--json-summary', json_summary,
236232
]
233+
for trace in tracefiles:
234+
args += ['--add-tracefile', trace]
237235

238236
self._logfile.write("--- Merging tracefiles ---\n")
239237
cmd = subprocess.run(args,
@@ -246,7 +244,9 @@ class Job(BaseJob):
246244

247245
self._logfile.write("--- Generating HTML report ---\n")
248246
html_report = output_base + '.html'
249-
args = self._gcovr_cmd + [
247+
args = [
248+
'gcovr',
249+
'--root', self._src_path,
250250
'--add-tracefile', tracefile,
251251
'--html', html_report,
252252
]

config/scheduler.yaml

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -341,14 +341,26 @@ scheduler:
341341
<<: *build-k8s-all
342342
event: *node-event-kbuild-done
343343

344+
- job: coverage-report-arm
345+
<<: *build-k8s-all
346+
event: *job-event
347+
344348
- job: coverage-report-arm64
345349
<<: *build-k8s-all
346350
event: *node-event-kbuild-done
347351

352+
- job: coverage-report-arm64
353+
<<: *build-k8s-all
354+
event: *job-event
355+
348356
- job: coverage-report-x86
349357
<<: *build-k8s-all
350358
event: *node-event-kbuild-done
351359

360+
- job: coverage-report-x86
361+
<<: *build-k8s-all
362+
event: *job-event
363+
352364
- job: kbuild-clang-17-arm
353365
<<: *build-k8s-all
354366

0 commit comments

Comments
 (0)