CDash report for concretization errors
Capture any concretization errors and record them in a CTest Update.xml file.
This commit is contained in:
parent
d7581697a5
commit
ae0ba373b8
@ -36,6 +36,7 @@
|
||||
import spack.cmd.common.arguments as arguments
|
||||
import spack.fetch_strategy
|
||||
import spack.report
|
||||
from spack.error import SpackError
|
||||
|
||||
|
||||
description = "build and install packages"
|
||||
@ -203,7 +204,11 @@ def install(parser, args, **kwargs):
|
||||
for spec in specs:
|
||||
spack.package_testing.test(spec.name)
|
||||
|
||||
try:
|
||||
specs = spack.cmd.parse_specs(args.package, concretize=True)
|
||||
except SpackError as e:
|
||||
reporter.concretization_report(e.message)
|
||||
raise
|
||||
|
||||
# 2. Concrete specs from yaml files
|
||||
for file in args.specfiles:
|
||||
|
@ -360,6 +360,24 @@ def cdash_build_report(self, report_data):
|
||||
t = env.get_template(phase_template)
|
||||
f.write(t.render(report_data))
|
||||
|
||||
def concretization_report(self, msg):
|
||||
if not self.format_name == 'cdash':
|
||||
return
|
||||
|
||||
report_data = {}
|
||||
report_data['starttime'] = self.starttime
|
||||
report_data['endtime'] = self.starttime
|
||||
self.cdash_initialize_report(report_data)
|
||||
|
||||
report_data['msg'] = msg
|
||||
env = spack.tengine.make_environment()
|
||||
update_template = os.path.join(templates[self.format_name],
|
||||
'Update.xml')
|
||||
t = env.get_template(update_template)
|
||||
output_filename = os.path.join(self.filename, 'Update.xml')
|
||||
with open(output_filename, 'w') as f:
|
||||
f.write(t.render(report_data))
|
||||
|
||||
def __exit__(self, exc_type, exc_val, exc_tb):
|
||||
if self.format_name:
|
||||
# Close the collector and restore the
|
||||
|
11
templates/reports/cdash/Update.xml
Normal file
11
templates/reports/cdash/Update.xml
Normal file
@ -0,0 +1,11 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Update>
|
||||
<Site>{{ hostname }}</Site>
|
||||
<BuildName>{{ install_command }}</BuildName>
|
||||
<BuildStamp>{{ buildstamp }}</BuildStamp>
|
||||
<StartTime>{{ starttime }}</StartTime>
|
||||
<EndTime>{{ endtime }}</EndTime>
|
||||
{% if msg %}
|
||||
<UpdateReturnStatus>{{ msg }}</UpdateReturnStatus>
|
||||
{% endif %}
|
||||
</Update>
|
Loading…
Reference in New Issue
Block a user