Skip to content

Commit 964c7e0

Browse files
committed
Merge pull request #1502 from rtfd/delete-pdf-epub-artifacts
Delete pdf/epub artifacts when their build is disabled
2 parents 89772eb + cc17a87 commit 964c7e0

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

readthedocs/projects/tasks.py

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -612,6 +612,11 @@ def finish_build(version_pk, build_pk, hostname=None, html=False,
612612
version.built = True
613613
version.save()
614614

615+
if not pdf:
616+
clear_pdf_artifacts(version)
617+
if not epub:
618+
clear_epub_artifacts(version)
619+
615620
move_files(
616621
version_pk=version_pk,
617622
hostname=hostname,
@@ -652,19 +657,28 @@ def move_files(version_pk, hostname, html=False, localmedia=False, search=False,
652657
from_path = version.project.artifact_path(version=version.slug, type='sphinx_localmedia')
653658
to_path = version.project.get_production_media_path(type='htmlzip', version_slug=version.slug, include_file=False)
654659
Syncer.copy(from_path, to_path, host=hostname)
660+
655661
if search:
656662
from_path = version.project.artifact_path(version=version.slug, type='sphinx_search')
657663
to_path = version.project.get_production_media_path(type='json', version_slug=version.slug, include_file=False)
658664
Syncer.copy(from_path, to_path, host=hostname)
665+
659666
# Always move PDF's because the return code lies.
660667
if pdf:
661668
from_path = version.project.artifact_path(version=version.slug, type='sphinx_pdf')
662669
to_path = version.project.get_production_media_path(type='pdf', version_slug=version.slug, include_file=False)
663670
Syncer.copy(from_path, to_path, host=hostname)
671+
elif not version.project.enable_pdf_build:
672+
to_path = version.project.get_production_media_path(type='pdf', version_slug=version.slug, include_file=False)
673+
Syncer.remove(to_path)
674+
664675
if epub:
665676
from_path = version.project.artifact_path(version=version.slug, type='sphinx_epub')
666677
to_path = version.project.get_production_media_path(type='epub', version_slug=version.slug, include_file=False)
667678
Syncer.copy(from_path, to_path, host=hostname)
679+
elif not version.project.enable_epub_build:
680+
to_path = version.project.get_production_media_path(type='epub', version_slug=version.slug, include_file=False)
681+
Syncer.remove(to_path)
668682

669683
if 'mkdocs' in version.project.documentation_type:
670684
if search:
@@ -875,7 +889,23 @@ def remove_dir(path):
875889
def clear_artifacts(version_pk):
876890
""" Remove artifacts from the web servers. """
877891
version = Version.objects.get(pk=version_pk)
892+
clear_pdf_artifacts(version)
893+
clear_epub_artifacts(version)
894+
clear_htmlzip_artifacts(version)
895+
clear_html_artifacts(version)
896+
897+
898+
def clear_pdf_artifacts(version):
878899
run_on_app_servers('rm -rf %s' % version.project.get_production_media_path(type='pdf', version_slug=version.slug))
900+
901+
902+
def clear_epub_artifacts(version):
879903
run_on_app_servers('rm -rf %s' % version.project.get_production_media_path(type='epub', version_slug=version.slug))
904+
905+
906+
def clear_htmlzip_artifacts(version):
880907
run_on_app_servers('rm -rf %s' % version.project.get_production_media_path(type='htmlzip', version_slug=version.slug))
908+
909+
910+
def clear_html_artifacts(version):
881911
run_on_app_servers('rm -rf %s' % version.project.rtd_build_path(version=version.slug))

0 commit comments

Comments
 (0)