'Run setup in the local environment.
Return True if successful.'

def run_setup(self, record=True):

    self.setup_env = LocalEnvironment(project=self.project, version=self.version, build=self.build, record=record)
    with self.setup_env:
        if self.project.skip:
            raise BuildEnvironmentError(_('Builds    for    this    project    are    temporarily    disabled'))
        try:
            self.setup_vcs()
        except vcs_support_utils.LockTimeout as e:
            self.retry(exc=e, throw=False)
            raise BuildEnvironmentError('Version    locked,    retrying    in    5    minutes.', status_code=423)
        try:
            self.config = load_yaml_config(version=self.version)
        except ConfigError as e:
            raise BuildEnvironmentError('Problem    parsing    YAML    configuration.    {0}'.format(str(e)))
    if (self.setup_env.failure or (self.config is None)):
        self._log(('Failing    build    because    of    setup    failure:    %s' % self.setup_env.failure))
        if (not isinstance(self.setup_env.failure, vcs_support_utils.LockTimeout)):
            self.send_notifications()
        self.setup_env.update_build(state=BUILD_STATE_FINISHED)
        return False
    if (self.setup_env.successful and (not self.project.has_valid_clone)):
        self.set_valid_clone()
    return True
