def run(self, step: steps.Step, part_names=None): if part_names: self.parts_config.validate(part_names) # self.config.all_parts is already ordered, let's not lose that # and keep using a list. parts = [p for p in self.config.all_parts if p.name in part_names] processed_part_names = part_names else: parts = self.config.all_parts processed_part_names = self.config.part_names with config.CLIConfig() as cli_config: for current_step in step.previous_steps() + [step]: if current_step == steps.STAGE: # XXX check only for collisions on the parts that have # already been built --elopio - 20170713 pluginhandler.check_for_collisions(self.config.all_parts) for part in parts: if self._dirty_reports[part.name][current_step]: self._handle_dirty( part, current_step, self._dirty_reports[part.name][current_step], cli_config) elif current_step in self._steps_run[part.name]: # By default, if a step has already run, don't run it # again. However, automatically clean and re-run the # step if all the following conditions apply: # # 1. The step is the exact step that was requested # (not an earlier one) # 2. The part was explicitly specified if (part_names and current_step == step and part.name in part_names): getattr(self, '_re{}'.format( current_step.name))(part) else: notify_part_progress( part, 'Skipping {}'.format(current_step.name), '(already ran)') else: getattr(self, '_run_{}'.format( current_step.name))(part) self._steps_run[part.name].add(current_step) self._create_meta(step, processed_part_names)
def run(self, step, part_names=None, recursed=False): if part_names: self.config.validate_parts(part_names) parts = {p for p in self.config.all_parts if p.name in part_names} else: parts = self.config.all_parts part_names = self.config.part_names dirty = {p.name for p in parts if p.should_step_run('stage')} step_index = common.COMMAND_ORDER.index(step) + 1 for step in common.COMMAND_ORDER[0:step_index]: if step == 'stage': pluginhandler.check_for_collisions(self.config.all_parts) for part in parts: self._run_step(step, part, part_names, dirty, recursed) self._create_meta(step, part_names)
def run(self, step, part_names=None, recursed=False): if part_names: self.parts_config.validate(part_names) parts = {p for p in self.config.all_parts if p.name in part_names} else: parts = self.config.all_parts part_names = self.config.part_names dirty = {p.name for p in parts if p.should_step_run('stage')} step_index = common.COMMAND_ORDER.index(step) + 1 for step in common.COMMAND_ORDER[0:step_index]: if step == 'stage': pluginhandler.check_for_collisions(self.config.all_parts) for part in parts: self._run_step(step, part, part_names, dirty, recursed) self._create_meta(step, part_names)
def run(self, step, part_names=None): if part_names: self.parts_config.validate(part_names) # self.config.all_parts is already ordered, let's not lose that # and keep using a list. parts = [p for p in self.config.all_parts if p.name in part_names] else: parts = self.config.all_parts part_names = self.config.part_names step_index = common.COMMAND_ORDER.index(step) + 1 for step in common.COMMAND_ORDER[0:step_index]: if step == 'stage': pluginhandler.check_for_collisions(self.config.all_parts) for part in parts: if step not in self._steps_run[part.name]: self._run_step(step, part, part_names) self._steps_run[part.name].add(step) self._create_meta(step, part_names)
def run(self, step: steps.Step, part_names=None): if part_names: self.parts_config.validate(part_names) # self.config.all_parts is already ordered, let's not lose that # and keep using a list. parts = [p for p in self.config.all_parts if p.name in part_names] processed_part_names = part_names else: parts = self.config.all_parts processed_part_names = self.config.part_names with config.CLIConfig() as cli_config: for current_step in step.previous_steps() + [step]: if current_step == steps.STAGE: # XXX check only for collisions on the parts that have # already been built --elopio - 20170713 pluginhandler.check_for_collisions(self.config.all_parts) for part in parts: self._handle_step(part_names, part, step, current_step, cli_config) self._create_meta(step, processed_part_names)