From 10270e4ec081a70b7878a1d4eebcfe292314bc9f Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Mon, 9 Aug 2021 14:25:58 +0200
Subject: [PATCH] [scripts.ci] Fix nightly checks

---
 bob/devtools/ci.py                         | 25 ++++++++++++++++++++++
 bob/devtools/data/gitlab-ci/nightlies.yaml |  7 ++++--
 bob/devtools/scripts/ci.py                 |  6 ++++--
 3 files changed, 34 insertions(+), 4 deletions(-)

diff --git a/bob/devtools/ci.py b/bob/devtools/ci.py
index 20577e80..a92ee090 100644
--- a/bob/devtools/ci.py
+++ b/bob/devtools/ci.py
@@ -4,7 +4,9 @@
 """Tools to help CI-based builds and artifact deployment."""
 
 
+import contextlib
 import distutils.version
+import os
 
 import git
 
@@ -295,3 +297,26 @@ def cleanup(dry_run, username, password, includes):
                 pyver=True,
                 includes=includes,
             )
+
+
+@contextlib.contextmanager
+def temporary_cwd(path):
+    """Temporarily changes the working directory to a given path
+
+    A context manager that temporarily changes the path to the given directory.
+    The working directory changes the working directory back to the starting
+    directory when it exits.
+
+
+    Args:
+
+      path: The directory to temporarily change to
+
+    """
+
+    oldpwd = os.getcwd()
+    os.chdir(path)
+    try:
+        yield
+    finally:
+        os.chdir(oldpwd)
diff --git a/bob/devtools/data/gitlab-ci/nightlies.yaml b/bob/devtools/data/gitlab-ci/nightlies.yaml
index 2b2ab48a..0939e810 100644
--- a/bob/devtools/data/gitlab-ci/nightlies.yaml
+++ b/bob/devtools/data/gitlab-ci/nightlies.yaml
@@ -6,7 +6,8 @@ variables:
   PYTHONUNBUFFERED: "1"
   CONDA_ROOT: "${CI_PROJECT_DIR}/miniconda"
   BOOTSTRAP: "https://gitlab.idiap.ch/bob/bob.devtools/raw/master/bob/devtools/bootstrap.py"
-  TORCH_HOME: "${CI_PROJECT_DIR}/torch"
+  TORCH_HOME: "${CI_PROJECT_DIR}/.cache/torch"
+  PRE_COMMIT_HOME: "${CI_PROJECT_DIR}/.cache/pre-commit"
 
 
 # Definition of our build pipeline order
@@ -26,7 +27,9 @@ stages:
     - conda activate base
   cache:
     paths:
-      - torch
+      - miniconda.sh
+      - ${TORCH_HOME}
+      - ${PRE_COMMIT_HOME}
 
 
 # Build targets
diff --git a/bob/devtools/scripts/ci.py b/bob/devtools/scripts/ci.py
index 0b4bbd3c..87ee623f 100644
--- a/bob/devtools/scripts/ci.py
+++ b/bob/devtools/scripts/ci.py
@@ -19,6 +19,7 @@ from ..ci import (
     select_conda_build_config,
     select_conda_recipe_append,
     select_user_condarc,
+    temporary_cwd,
 )
 from ..constants import BASE_CONDARC, SERVER
 from ..deploy import deploy_conda_package, deploy_documentation
@@ -730,8 +731,9 @@ def nightlies(ctx, order, dry_run):
         )
         logger.info("Conda build recipe-append file: %s", append_file)
 
-        logger.info("Running checks")
-        ctx.invoke(check, root=clone_to)
+        logger.info("Running checks...")
+        with temporary_cwd(clone_to):
+            ctx.invoke(check)
 
         logger.info("Building")
         ctx.invoke(
-- 
GitLab