diff --git a/osbuild/main_cli.py b/osbuild/main_cli.py index 1bbb70f9..8f3867e1 100644 --- a/osbuild/main_cli.py +++ b/osbuild/main_cli.py @@ -30,9 +30,17 @@ def mark_checkpoints(pipeline, checkpoints): stage.checkpoint = True points.remove(c) + def mark_assembler(assembler): + c = assembler.id + if c in points: + assembler.checkpoint = True + points.remove(c) + def mark_pipeline(pl): for stage in pl.stages: mark_stage(stage) + if pl.assembler: + mark_assembler(pl.assembler) if pl.build: mark_pipeline(pl.build) diff --git a/osbuild/pipeline.py b/osbuild/pipeline.py index 85e136af..48dfb8db 100644 --- a/osbuild/pipeline.py +++ b/osbuild/pipeline.py @@ -108,6 +108,7 @@ class Assembler: self.build = build self.base = base self.options = options + self.checkpoint = False @property def id(self): @@ -308,7 +309,8 @@ class Pipeline: results["success"] = False return results - object_store.commit(output, self.output_id) + if self.assembler.checkpoint: + object_store.commit(output, self.assembler.id) if output_directory: output.export(output_directory) output.cleanup()