def _dump_pipeline_file(self, stage): data = {} if self.exists(): with open(self.path) as fd: data = parse_stage_for_update(fd.read(), self.path) else: open(self.path, "w+").close() data["stages"] = data.get("stages", {}) stage_data = serialize.to_pipeline_file(stage) if data["stages"].get(stage.name): orig_stage_data = data["stages"][stage.name] apply_diff(stage_data[stage.name], orig_stage_data) else: data["stages"].update(stage_data) dump_stage_file(self.path, data) self.repo.scm.track_file(relpath(self.path))
def _dump_pipeline_file(self, stage): data = {} if self.exists(): with open(self.path) as fd: data = parse_yaml_for_update(fd.read(), self.path) else: logger.info("Creating '%s'", self.relpath) open(self.path, "w+").close() data["stages"] = data.get("stages", {}) stage_data = serialize.to_pipeline_file(stage) if data["stages"].get(stage.name): orig_stage_data = data["stages"][stage.name] apply_diff(stage_data[stage.name], orig_stage_data) else: data["stages"].update(stage_data) logger.info( "Adding stage '%s' to '%s'", stage.name, self.relpath, ) dump_yaml(self.path, data) self.repo.scm.track_file(self.relpath)