def trigger_build(project, version=None, record=True, force=False, basic=False): """Trigger build for project and version If project has a ``build_queue``, execute task on this build queue. Queue will be prefixed with ``build-`` to unify build queue names. """ # Avoid circular import from readthedocs.projects.tasks import update_docs from readthedocs.builds.models import Build if project.skip: return None if not version: version = project.versions.get(slug=LATEST) kwargs = dict( pk=project.pk, version_pk=version.pk, record=record, force=force, basic=basic, ) build = None if record: build = Build.objects.create( project=project, version=version, type='html', state='triggered', success=True, ) kwargs['build_pk'] = build.pk options = {} if project.build_queue: options['queue'] = project.build_queue # Set per-task time limit time_limit = DOCKER_LIMITS['time'] try: if project.container_time_limit: time_limit = int(project.container_time_limit) except ValueError: pass # Add 20% overhead to task, to ensure the build can timeout and the task # will cleanly finish. options['soft_time_limit'] = time_limit options['time_limit'] = int(time_limit * 1.2) update_docs.apply_async(kwargs=kwargs, **options) return build
def trigger_build(project, version=None, record=True, force=False, basic=False): """Trigger build for project and version If project has a ``build_queue``, execute task on this build queue. Queue will be prefixed with ``build-`` to unify build queue names. """ # Avoid circular import from readthedocs.projects.tasks import update_docs from readthedocs.builds.models import Build if project.skip: return None if not version: version = project.versions.get(slug=LATEST) kwargs = dict( pk=project.pk, version_pk=version.pk, record=record, force=force, basic=basic, ) build = None if record: build = Build.objects.create( project=project, version=version, type='html', state='triggered', success=True, ) kwargs['build_pk'] = build.pk options = {} if project.build_queue: options['queue'] = 'build-{0}'.format(project.build_queue) update_docs.apply_async(kwargs=kwargs, **options) return build
def trigger_build(project, version=None, record=True, force=False, basic=False): """Trigger build for project and version If project has a ``build_queue``, execute task on this build queue. Queue will be prefixed with ``build-`` to unify build queue names. """ # Avoid circular import from readthedocs.projects.tasks import update_docs from readthedocs.builds.models import Build if project.skip: return None if not version: version = project.versions.get(slug=LATEST) kwargs = dict( pk=project.pk, version_pk=version.pk, record=record, force=force, basic=basic, ) build = None if record: build = Build.objects.create( project=project, version=version, type='html', state='triggered', success=True, ) kwargs['build_pk'] = build.pk options = {} if project.build_queue: options['queue'] = project.build_queue update_docs.apply_async(kwargs=kwargs, **options) return build