WIP: Add various event hooks
diff --git a/buildstream/_pipeline.py b/buildstream/_pipeline.py
index 2a64e2f..0e6d2c6 100644
--- a/buildstream/_pipeline.py
+++ b/buildstream/_pipeline.py
@@ -309,18 +309,39 @@
self.session_elements = len(dependencies)
self.message(MessageType.START, "Starting track")
+ self.context._hooks.run_hook(
+ 'track-start',
+ "Starting track",
+ self.project.name
+ )
elapsed, status = scheduler.run([track])
changed = len(track.processed_elements)
if status == SchedStatus.ERROR:
+ self.context._hooks.run_hook(
+ 'track-fail',
+ "Track failed",
+ self.project.name
+ )
self.message(MessageType.FAIL, "Track failed", elapsed=elapsed)
raise PipelineError()
elif status == SchedStatus.TERMINATED:
+ self.context._hooks.run_hook(
+ 'track-fail',
+ "Terminated after updating {} source references".format(changed),
+ self.project.name
+ )
self.message(MessageType.WARN,
"Terminated after updating {} source references".format(changed),
elapsed=elapsed)
raise PipelineError()
else:
+ self.context._hooks.run_hook(
+ 'track-complete',
+ "Updated {} source references".format(changed),
+ self.project.name
+ )
+
self.message(MessageType.SUCCESS,
"Updated {} source references".format(changed),
elapsed=elapsed)