From c8c2ab24dd5965757d37d2fd95db917d52566edb Mon Sep 17 00:00:00 2001
From: Amir MOHAMMADI <amir.mohammadi@idiap.ch>
Date: Mon, 18 Oct 2021 10:33:50 +0200
Subject: [PATCH] Install yum_requirements.txt in all cases in the CI

---
 bob/devtools/data/gitlab-ci/single-package.yaml |  1 -
 bob/devtools/scripts/build.py                   | 14 +++++++++++++-
 2 files changed, 13 insertions(+), 2 deletions(-)

diff --git a/bob/devtools/data/gitlab-ci/single-package.yaml b/bob/devtools/data/gitlab-ci/single-package.yaml
index fc521f38..dc324c58 100644
--- a/bob/devtools/data/gitlab-ci/single-package.yaml
+++ b/bob/devtools/data/gitlab-ci/single-package.yaml
@@ -84,7 +84,6 @@ build_linux_38:
     PYTHON_VERSION: "3.8"
     BUILD_EGG: "true"
   script:
-    - if [ -f "${CI_PROJECT_DIR}/conda/yum_requirements.txt" ]; then /usr/bin/sudo -n yum -y install $(cat ${CI_PROJECT_DIR}/conda/yum_requirements.txt); fi # [linux]
     - bdt ci build -vv
     - bdt ci readme -vv dist/*.zip
     - bdt ci clean -vv
diff --git a/bob/devtools/scripts/build.py b/bob/devtools/scripts/build.py
index 252bff15..47226be8 100644
--- a/bob/devtools/scripts/build.py
+++ b/bob/devtools/scripts/build.py
@@ -8,7 +8,7 @@ import click
 import conda_build.api
 import yaml
 
-from ..bootstrap import get_channels, set_environment
+from ..bootstrap import get_channels, run_cmdline, set_environment
 from ..build import (
     conda_arch,
     get_docserver_setup,
@@ -248,6 +248,18 @@ def build(
         if not os.path.exists(d):
             raise RuntimeError("The directory %s does not exist" % d)
 
+        # If in docker, install the packages inside the yum_requirements.txt file if it exists
+        yum_requirements_file = os.path.join(d, "yum_requirements.txt")
+        if "docker" in os.environ.get("CI_RUNNER_TAGS", "") and os.path.exists(
+            yum_requirements_file
+        ):
+            logger.info(
+                "Installing packages from yum_requirements.txt file using yum"
+            )
+            cmd = ["/usr/bin/sudo", "-n", "yum", "-y", "install"]
+            cmd.extend(open(yum_requirements_file).read().splitlines())
+            run_cmdline(cmd)
+
         version_candidate = os.path.join(d, "..", "version.txt")
         if os.path.exists(version_candidate):
             version = open(version_candidate).read().rstrip()
-- 
GitLab