From c61af5e6fc561487ea6bc9456e276592ff8dbbab Mon Sep 17 00:00:00 2001
From: Samuel Gaist <samuel.gaist@idiap.ch>
Date: Thu, 22 Dec 2022 15:36:35 +0100
Subject: [PATCH] [ci] Refactor the CI to use only downstream pipelines

---
 .gitlab-ci.yml | 81 +++++++++++++++++++++++++++++++++++++++++++++++++-
 README.rst     |  4 +--
 order.txt      | 21 -------------
 3 files changed, 82 insertions(+), 24 deletions(-)
 delete mode 100644 order.txt

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 04caba5..9692181 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1 +1,80 @@
-include: 'https://gitlab.idiap.ch/bob/bob.devtools/raw/master/bob/devtools/data/gitlab-ci/nightlies.yaml'
+stages:
+    - core
+    - extra
+    - final
+
+# what used to be core packages
+bob/bob.extension:
+    stage: core
+    trigger:
+        project: bob/bob.extension
+        strategy: depend
+
+bob/core:
+    parallel:
+        matrix:
+            - PROJECT: ["bob/bob.io.base", "bob/bob.measure", "bob/bob.learn.em"]
+    stage: core
+    trigger:
+        project: $PROJECT
+        strategy: depend
+
+    needs: ['bob/bob.extension']
+
+# what used to be extra packages
+bob/bob.pipelines:
+    stage: extra
+    trigger:
+        project: bob/bob.pipelines
+        strategy: depend
+
+    needs: ['bob/core']
+
+bob/bob.bio.base:
+    stage: extra
+    trigger:
+        project: bob/bob.bio.base
+        strategy: depend
+
+    needs: ['bob/bob.pipelines']
+
+bob/bob.bio:
+    parallel:
+        matrix:
+            - PROJECT: ["bob/bob.bio.face", "bob/bob.bio.video", "bob/bob.bio.vein", "bob/bob.bio.spear"]
+    stage: extra
+    trigger:
+        project: $PROJECT
+
+    needs: ['bob/bob.bio.base']
+
+bob/bob.pad.base:
+    stage: extra
+    trigger:
+        project: bob/bob.pad.base
+        strategy: depend
+
+    needs: ['bob/bob.pipelines']
+
+bob/bob.pad.face:
+    stage: extra
+    trigger:
+        project: bob/bob.pad.face
+        strategy: depend
+
+    needs: ['bob/bob.pad.base']
+
+bob/bob.fusion.base:
+    stage: extra
+    trigger:
+        project: bob/bob.fusion.base
+        strategy: depend
+
+    needs: ['bob/bob.pipelines']
+
+# test bob itself
+bob/bob:
+    stage: final
+    trigger:
+        project: bob/bob
+        strategy: depend
diff --git a/README.rst b/README.rst
index 9fd11c3..996b529 100644
--- a/README.rst
+++ b/README.rst
@@ -23,7 +23,7 @@ Updating a Package
    If you don't know how to do this, ask for information on our `mailing
    list`_.
 
-The new package must be added to ``order.txt`` respecting the order of
+The new package must be added to ``.gitlab-ci.yml`` respecting the order of
 dependencies.  Once the file is modified, commit the changes to a **new
 branch**, with a suggestive name. Push the branch and merge it to the master
 (or ask it to be merged), via a standard merge request.
@@ -33,7 +33,7 @@ branch**, with a suggestive name. Push the branch and merge it to the master
 Removing a Package
 ------------------
 
-Once you remove a package from ``order.txt``, make sure to remove it from ``bob/bob``
+Once you remove a package from ``.gitlab-ci.yml``, make sure to remove it from ``bob/bob``
 and ``bob/docs`` repositories as well.
 
 
diff --git a/order.txt b/order.txt
deleted file mode 100644
index dfddac3..0000000
--- a/order.txt
+++ /dev/null
@@ -1,21 +0,0 @@
-# what used to be core packages
-bob/bob.extension
-bob/bob.io.base
-bob/bob.measure
-bob/bob.learn.em
-
-# what used to be extra packages
-bob/bob.pipelines
-bob/bob.bio.base
-bob/bob.bio.face
-bob/bob.bio.video
-bob/bob.bio.vein
-bob/bob.bio.spear
-
-bob/bob.pad.base
-bob/bob.pad.face
-
-bob/bob.fusion.base
-
-# test bob itself
-bob/bob
-- 
GitLab