From 7805b04905bf8ef37851289f32a18630fc5d974c Mon Sep 17 00:00:00 2001
From: Eleni Mathioulaki <emathioulaki@athenarc.gr>
Date: Wed, 6 Sep 2023 18:56:40 +0200
Subject: [PATCH] use notebook as test for multi-area-model workflow package

---
 .gitlab-ci.yml                          |  3 ++-
 packages/wf-multi-area-model/package.py | 24 +++++++++++++++++++++---
 spack.yaml                              |  2 +-
 3 files changed, 24 insertions(+), 5 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 59ec4499..7f765299 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -207,7 +207,7 @@ build-spack-env-on-runner:
     - |
       # succesfully installed packages: keep the spack logs for any package modified during this CI job
       SPACK_PACKAGES_DIR=$SPACK_DEV_PATH/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0
-      if cp --parents $SPACK_PACKAGES_DIR/*/.spack/*.txt ./; then
+      if cp --parents $SPACK_PACKAGES_DIR/*/.spack/*.txt $SPACK_PACKAGES_DIR/*/.spack_test_results/* ./; then
         mv .$SPACK_PACKAGES_DIR spack_logs/installed
       else
         echo "No packages installed, so no logs to collect"
@@ -290,6 +290,7 @@ sync-gitlab-spack-instance:
       # (we use repo.yaml, that is modified at each start of the pipeline, as a reference file)
       SPACK_PACKAGES_DIR=$SPACK_PATH/spack/opt/spack/linux-ubuntu20.04-x86_64/gcc-10.3.0
       if find $SPACK_PACKAGES_DIR/*/.spack/*.txt -newer $SPACK_REPO_PATH/repo.yaml -exec cp --parents -r "{}" ./ \;; then
+        cp --parents -r $SPACK_PACKAGES_DIR/*/.spack_test_results/* ./
         mv .$SPACK_PACKAGES_DIR spack_logs/installed
       else
         echo "No packages installed, so no logs to collect"
diff --git a/packages/wf-multi-area-model/package.py b/packages/wf-multi-area-model/package.py
index 4458d123..0020b1de 100644
--- a/packages/wf-multi-area-model/package.py
+++ b/packages/wf-multi-area-model/package.py
@@ -6,15 +6,33 @@
 from spack import *
 
 
-class WfMultiAreaModel(BundlePackage):
+class WfMultiAreaModel(Package):
     """Meta-package to collect all dependencies of the Multi-Area-Model."""
 
     homepage="https://inm-6.github.io/multi-area-model/"
-    git = "https://github.com/INM-6/multi-area-model"
+    #git = "https://github.com/INM-6/multi-area-model"
+    git = "https://github.com/terhorstd/multi-area-model"
     maintainer = ["terhorstd"]
 
-    version("0.1")
+    version("master",  branch="master")
+    version("ebrains",  branch="lab.ebrains.eu")
 
     depends_on("py-nested-dict")
     depends_on("py-dicthash")
+    depends_on("py-matplotlib")
+    depends_on("py-numpy")
+    depends_on("py-scipy")
+    depends_on("py-future")
+    depends_on("nest")
+    depends_on("py-notebook", type="test")
 
+    def install(self, spec, prefix):
+        # sanity_check_prefix requires something in the install directory
+        mkdirp(prefix + "/.spack_test_results")
+
+    @run_after("install")
+    @on_package_attributes(run_tests=True)
+    def installcheck(self):
+        # execute notebook and save
+        jupyter = Executable("jupyter")
+        jupyter("nbconvert", "--ExecutePreprocessor.kernel_name=python3", "--execute", "--allow-errors", "--to", "notebook", "multi-area-model.ipynb", "--output", prefix+"/.spack_test_results/multi-area-model.ipynb")
diff --git a/spack.yaml b/spack.yaml
index 89e7eec2..4a859257 100644
--- a/spack.yaml
+++ b/spack.yaml
@@ -62,7 +62,7 @@ spack:
     - wf-biobb
     - wf-brainscales2-demos
     - wf-uq-akar4@0.1
-    - wf-multi-area-model@0.1
+    - wf-multi-area-model@ebrains
     #- py-cerebstats
     #- py-cerebunit
     #- py-morphounit@1.0.4
-- 
GitLab