Ejemplo n.º 1
0
def symlink(project, version=LATEST):
    from readthedocs.projects import symlinks
    v = version_from_slug(project, version)
    log.info("Symlinking %s" % v)
    symlinks.symlink_subprojects(v)
    symlinks.symlink_cnames(v)
    symlinks.symlink_translations(v)
Ejemplo n.º 2
0
def symlink(project, version=LATEST):
    from readthedocs.projects import symlinks
    version_obj = version_from_slug(project, version)
    log.info("Symlinking %s", version_obj)
    symlinks.symlink_subprojects(version_obj)
    symlinks.symlink_cnames(version_obj)
    symlinks.symlink_translations(version_obj)
    def test_subproject_normal(self):
        self.project.add_subproject(self.subproject)
        symlink_subprojects(self.project)
        self.args["subproject"] = self.subproject.slug
        commands = ["mkdir -p {subproject_root}", "ln -nsf {build_path}/rtd-builds {subproject_root}/{subproject}"]

        for index, command in enumerate(commands):
            self.assertEqual(self.commands[index], command.format(**self.args))
Ejemplo n.º 4
0
def symlink(project):
    """This is here to avoid circular imports in models.py"""
    from readthedocs.projects import symlinks
    log.info("Symlinking %s", project)
    symlinks.symlink_cnames(project)
    symlinks.symlink_translations(project)
    symlinks.symlink_subprojects(project)
    if project.single_version:
        symlinks.symlink_single_version(project)
    else:
        symlinks.remove_symlink_single_version(project)
Ejemplo n.º 5
0
def symlink(project):
    """This is here to avoid circular imports in models.py"""
    from readthedocs.projects import symlinks
    log.info("Symlinking %s", project)
    symlinks.symlink_cnames(project)
    symlinks.symlink_translations(project)
    symlinks.symlink_subprojects(project)
    if project.single_version:
        symlinks.symlink_single_version(project)
    else:
        symlinks.remove_symlink_single_version(project)
    def test_subproject_normal(self):
        self.project.add_subproject(self.subproject)
        symlink_subprojects(self.project)
        self.args['subproject'] = self.subproject.slug
        commands = [
            'mkdir -p {subproject_root}',
            'ln -nsf {build_path}/rtd-builds {subproject_root}/{subproject}',
        ]

        for index, command in enumerate(commands):
            self.assertEqual(self.commands[index], command.format(**self.args))
    def test_subproject_alias(self):
        self.project.add_subproject(self.subproject, alias='sweet-alias')
        symlink_subprojects(self.project)
        self.args['subproject'] = self.subproject.slug
        self.args['alias'] = 'sweet-alias'
        commands = [
            'mkdir -p {subproject_root}',
            'ln -nsf {build_path}/rtd-builds {subproject_root}/{subproject}',
            'mkdir -p {subproject_root}',
            'ln -nsf {build_path}/rtd-builds {subproject_root}/{alias}',
        ]

        for index, command in enumerate(commands):
            self.assertEqual(self.commands[index], command.format(**self.args))
Ejemplo n.º 8
0
def finish_build(version_pk,
                 build_pk,
                 hostname=None,
                 html=False,
                 localmedia=False,
                 search=False,
                 pdf=False,
                 epub=False):
    """
    Build Finished, do house keeping bits
    """
    version = Version.objects.get(pk=version_pk)
    build = Build.objects.get(pk=build_pk)

    if html:
        version.active = True
        version.built = True
        version.save()

    if not pdf:
        clear_pdf_artifacts(version)
    if not epub:
        clear_epub_artifacts(version)

    move_files(
        version_pk=version_pk,
        hostname=hostname,
        html=html,
        localmedia=localmedia,
        search=search,
        pdf=pdf,
        epub=epub,
    )

    symlinks.symlink_cnames(version)
    symlinks.symlink_translations(version)
    symlinks.symlink_subprojects(version)
    if version.project.single_version:
        symlinks.symlink_single_version(version)
    else:
        symlinks.remove_symlink_single_version(version)

    # Delayed tasks
    update_static_metadata.delay(version.project.pk)
    fileify.delay(version.pk, commit=build.commit)
    update_search.delay(version.pk, commit=build.commit)
    if not html and version.slug != STABLE and build.exit_code != 423:
        send_notifications.delay(version.pk, build_pk=build.pk)
Ejemplo n.º 9
0
def finish_build(version_pk, build_pk, hostname=None, html=False,
                 localmedia=False, search=False, pdf=False, epub=False):
    """
    Build Finished, do house keeping bits
    """
    version = Version.objects.get(pk=version_pk)
    build = Build.objects.get(pk=build_pk)

    if html:
        version.active = True
        version.built = True
        version.save()

    if not pdf:
        clear_pdf_artifacts(version)
    if not epub:
        clear_epub_artifacts(version)

    move_files(
        version_pk=version_pk,
        hostname=hostname,
        html=html,
        localmedia=localmedia,
        search=search,
        pdf=pdf,
        epub=epub,
    )

    symlinks.symlink_cnames(version)
    symlinks.symlink_translations(version)
    symlinks.symlink_subprojects(version)
    if version.project.single_version:
        symlinks.symlink_single_version(version)
    else:
        symlinks.remove_symlink_single_version(version)

    # Delayed tasks
    update_static_metadata.delay(version.project.pk)
    fileify.delay(version.pk, commit=build.commit)
    update_search.delay(version.pk, commit=build.commit)
    if not html and version.slug != STABLE and build.exit_code != 423:
        send_notifications.delay(version.pk, build_pk=build.pk)