diff options
-rw-r--r-- | lib/spack/spack/cmd/install.py | 7 | ||||
-rw-r--r-- | lib/spack/spack/report.py | 18 | ||||
-rw-r--r-- | templates/reports/cdash/Update.xml | 11 |
3 files changed, 35 insertions, 1 deletions
diff --git a/lib/spack/spack/cmd/install.py b/lib/spack/spack/cmd/install.py index 81f84dd1a2..71e5ea38ef 100644 --- a/lib/spack/spack/cmd/install.py +++ b/lib/spack/spack/cmd/install.py @@ -36,6 +36,7 @@ import spack.cmd 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) - specs = spack.cmd.parse_specs(args.package, concretize=True) + 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: diff --git a/lib/spack/spack/report.py b/lib/spack/spack/report.py index 404799604a..01d4e25611 100644 --- a/lib/spack/spack/report.py +++ b/lib/spack/spack/report.py @@ -360,6 +360,24 @@ class collect_info(object): 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 diff --git a/templates/reports/cdash/Update.xml b/templates/reports/cdash/Update.xml new file mode 100644 index 0000000000..39f3d6a337 --- /dev/null +++ b/templates/reports/cdash/Update.xml @@ -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> |