From 5e2ee0f1522643ae44f502b95d79538516f16fcc Mon Sep 17 00:00:00 2001
From: Andre Anjos <andre.dos.anjos@gmail.com>
Date: Fri, 8 Mar 2019 13:55:43 +0100
Subject: [PATCH] [build] Fix usage of conda_build.api.build() when using
 metadata (bis)

---
 bob/devtools/build.py           |  2 +-
 bob/devtools/scripts/ci.py      | 22 +++++++++++++++++++---
 bob/devtools/scripts/rebuild.py |  3 ++-
 3 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/bob/devtools/build.py b/bob/devtools/build.py
index dbb1c4a3..f88ae633 100644
--- a/bob/devtools/build.py
+++ b/bob/devtools/build.py
@@ -524,7 +524,7 @@ def base_build(bootstrap, server, intranet, group, recipe_dir,
 
   # if you get to this point, just builds the package
   logger.info('Building %s', path)
-  conda_build.api.build(metadata[0], config=conda_config)
+  conda_build.api.build(metadata[0][0], config=conda_config)
 
 
 if __name__ == '__main__':
diff --git a/bob/devtools/scripts/ci.py b/bob/devtools/scripts/ci.py
index d9a7e919..183173c6 100644
--- a/bob/devtools/scripts/ci.py
+++ b/bob/devtools/scripts/ci.py
@@ -266,9 +266,25 @@ def base_build(order, group, python, dry_run):
   """
 
   condarc = os.path.join(os.environ['CONDA_ROOT'], 'condarc')
-  logger.info('Loading (this build\'s) CONDARC file from %s...', condarc)
-  with open(condarc, 'rb') as f:
-    condarc_options = yaml.load(f)
+  if os.path.exists(condarc):
+    logger.info('Loading (this build\'s) CONDARC file from %s...', condarc)
+    with open(condarc, 'rb') as f:
+      condarc_options = yaml.load(f)
+
+  else:  #not building on the CI? - use defaults
+    import yaml
+    from ..constants import BASE_CONDARC, SERVER
+    from ..bootstrap import get_channels
+
+    # get potential channel upload and other auxiliary channels
+    channels = get_channels(public=True, stable=True, server=SERVER,
+        intranet='True', group='bob')
+
+    # use default and add channels
+    condarc_options = yaml.load(BASE_CONDARC)  #n.b.: no channels
+    logger.info('Using the following channels during build:\n  - %s',
+        '\n  - '.join(channels + ['defaults']))
+    condarc_options['channels'] = channels + ['defaults']
 
   # dump packages at conda_root
   condarc_options['croot'] = os.path.join(os.environ['CONDA_ROOT'],
diff --git a/bob/devtools/scripts/rebuild.py b/bob/devtools/scripts/rebuild.py
index 0a375398..18f192a9 100644
--- a/bob/devtools/scripts/rebuild.py
+++ b/bob/devtools/scripts/rebuild.py
@@ -200,7 +200,8 @@ def rebuild(recipe_dir, python, condarc, config, append_file,
         os.unlink(candidate)
 
       if not dry_run:
-        conda_build.api.build(metadata[0], config=conda_config, notest=no_test)
+        conda_build.api.build(metadata[0][0], config=conda_config,
+            notest=no_test)
         # if you get to this point, the package was successfully rebuilt
         # set environment to signal caller we can upload it
         os.environ['BDT_REBUILD'] = candidate
-- 
GitLab