From 5cf4f786e8a8cb199ff1ee6d22ef5c6b4e18b8bf Mon Sep 17 00:00:00 2001 From: Min RK Date: Fri, 9 Feb 2018 17:56:48 +0100 Subject: [PATCH] add assemble_subset - get_assemble_files() returns list of files needed for assembly - if buildpack.assemble_with_subset is set, only load assemble_files prior to running assembly scripts. Load the rest of the repo afterward conda opts in to this, but currently I think this works for everything *except* requirements.txt --- repo2docker/buildpacks/conda/__init__.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/repo2docker/buildpacks/conda/__init__.py b/repo2docker/buildpacks/conda/__init__.py index 8e818bc4..27446c4d 100644 --- a/repo2docker/buildpacks/conda/__init__.py +++ b/repo2docker/buildpacks/conda/__init__.py @@ -178,6 +178,18 @@ class CondaBuildPack(BaseImage): """Am I building a Python 2 kernel environment?""" return self.python_version and self.python_version.split(".")[0] == "2" + def get_assemble_files(self): + """Specify that assembly only requires environment.yml + + enables caching assembly result even when + repo contents change + """ + assemble_files = super().get_assemble_files() + environment_yml = self.binder_path('environment.yml') + if os.path.exists(environment_yml): + assemble_files.append(environment_yml) + return assemble_files + def get_assemble_scripts(self): """Return series of build-steps specific to this source repository. """