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)
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))
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))
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)