diff options
author | Lars Wirzenius <liw@liw.fi> | 2015-11-08 18:05:07 +0000 |
---|---|---|
committer | Lars Wirzenius <liw@liw.fi> | 2015-11-08 18:05:07 +0000 |
commit | 14ae397fde3ef6b085da2da22e6b3d6c39d64f50 (patch) | |
tree | a052085281460798b26b2c43afc477a67f368451 | |
parent | bc0f88bb9e0386bf187a566b63435eb87f720680 (diff) | |
download | ick-14ae397fde3ef6b085da2da22e6b3d6c39d64f50.tar.gz |
Add duration to build.yaml
-rw-r--r-- | icklib/buildinfo.py | 2 | ||||
-rw-r--r-- | icklib/buildinfo_tests.py | 2 | ||||
-rw-r--r-- | icklib/project.py | 10 |
3 files changed, 11 insertions, 3 deletions
diff --git a/icklib/buildinfo.py b/icklib/buildinfo.py index 022516b..b3b7f2a 100644 --- a/icklib/buildinfo.py +++ b/icklib/buildinfo.py @@ -23,7 +23,7 @@ import yaml class BuildInformation(object): - _attrs = ['build_number', 'commits', 'pipeline', 'status'] + _attrs = ['build_number', 'commits', 'pipeline', 'status', 'duration'] def __init__(self): self._dirname = None diff --git a/icklib/buildinfo_tests.py b/icklib/buildinfo_tests.py index 184a8b5..a9298ee 100644 --- a/icklib/buildinfo_tests.py +++ b/icklib/buildinfo_tests.py @@ -49,6 +49,7 @@ class BuildInformationTests(unittest.TestCase): 'commit': 'cafef00d', }, ] + build_info.duration = 42 build_info.save() loaded = icklib.BuildInformation() @@ -57,3 +58,4 @@ class BuildInformationTests(unittest.TestCase): self.assertEqual(build_info.build_number, loaded.build_number) self.assertEqual(build_info.commits, loaded.commits) + self.assertEqual(build_info.duration, loaded.duration) diff --git a/icklib/project.py b/icklib/project.py index 71c3718..d752eee 100644 --- a/icklib/project.py +++ b/icklib/project.py @@ -90,17 +90,21 @@ class Project(object): project=self.name) run_state.logger.important( 'Executing pipeline {name}', name=pipeline_name) + + run_state.started = time.time() try: pipeline.build(self, statedir, targets, run_state) except: if getattr(run_state, 'build_info', None) is not None: run_state.build_info.status = 'FAILURE' + run_state.build_info.duration = ( + time.time() - run_state.started) run_state.build_info.save() run_state.logger.important('') run_state.logger.important('Build status: FAILURE') run_state.logger.important( - 'Build log ends {timestamp)', - self.current_timestamp()) + 'Build log ends {timestamp}', + timestamp=self.current_timestamp()) raise run_state.logger.important( @@ -449,6 +453,8 @@ class FinishBuildInfo(icklib.BuildStep): def build(self): if getattr(self.run_state, 'build_info', None) is not None: self.run_state.build_info.status = 'SUCCESS' + self.run_state.build_info.duration = ( + time.time() - self.run_state.started) self.run_state.build_info.save() |