Exemplo n.º 1
0
    def _run_step(self, step, part, part_names, dirty, recursed):
        common.reset_env()
        prereqs = self.config.part_prereqs(part.name)
        if recursed:
            prereqs = prereqs & dirty
        if prereqs and not prereqs.issubset(part_names):
            for prereq in self.config.all_parts:
                if prereq.name in prereqs and prereq.should_step_run('stage'):
                    raise RuntimeError(
                        'Requested {!r} of {!r} but there are unsatisfied '
                        'prerequisites: {!r}'.format(
                            step, part.name, ' '.join(prereqs)))
        elif prereqs:
            # prerequisites need to build all the way to the staging
            # step to be able to share the common assets that make them
            # a dependency.
            logger.info(
                '{!r} has prerequisites that need to be staged: '
                '{}'.format(part.name, ' '.join(prereqs)))
            self.run('stage', prereqs, recursed=True)

        if part.is_dirty(step):
            self._handle_dirty(part, step)

        if not part.should_step_run(step):
            part.notify_part_progress('Skipping {}'.format(step),
                                      '(already ran)')
            return

        # Run the preparation function for this step (if implemented)
        with contextlib.suppress(AttributeError):
            getattr(part, 'prepare_{}'.format(step))()

        common.env = self.config.build_env_for_part(part)
        getattr(part, step)()
Exemplo n.º 2
0
    def _run_step(self, step, part, part_names, dirty, recursed):
        common.reset_env()
        prereqs = self.config.part_prereqs(part.name)
        if recursed:
            prereqs = prereqs & dirty
        if prereqs and not prereqs.issubset(part_names):
            raise RuntimeError(
                'Requested {!r} of {!r} but there are unsatisfied '
                'prerequisites: {!r}'.format(step, part.name,
                                             ' '.join(prereqs)))
        elif prereqs:
            # prerequisites need to build all the way to the staging
            # step to be able to share the common assets that make them
            # a dependency.
            logger.info('{!r} has prerequisites that need to be staged: '
                        '{}'.format(part.name, ' '.join(prereqs)))
            self.run('stage', prereqs, recursed=True)

        common.env = self.config.build_env_for_part(part)
        getattr(part, step)()
Exemplo n.º 3
0
    def _run_step(self, step, part, part_names, dirty, recursed):
        common.reset_env()
        prereqs = self.config.part_prereqs(part.name)
        if recursed:
            prereqs = prereqs & dirty
        if prereqs and not prereqs.issubset(part_names):
            raise RuntimeError(
                'Requested {!r} of {!r} but there are unsatisfied '
                'prerequisites: {!r}'.format(
                    step, part.name, ' '.join(prereqs)))
        elif prereqs:
            # prerequisites need to build all the way to the staging
            # step to be able to share the common assets that make them
            # a dependency.
            logger.info(
                '{!r} has prerequisites that need to be staged: '
                '{}'.format(part.name, ' '.join(prereqs)))
            self.run('stage', prereqs, recursed=True)

        common.env = self.config.build_env_for_part(part)
        getattr(part, step)()