From 0559b7a6988286c1a6a0d0a7225913f75c1b02c6 Mon Sep 17 00:00:00 2001
From: Paul McCarthy <pauldmccarthy@gmail.com>
Date: Fri, 10 Mar 2023 15:08:01 +0000
Subject: [PATCH] CI: Pre-build docker image for make testing faster

---
 .gitlab-ci.yml                    | 32 +++++++++++++++++++++++--------
 docker/Dockerfile                 |  8 ++++++++
 {.ci => docker}/create_dev_env.sh |  2 ++
 3 files changed, 34 insertions(+), 8 deletions(-)
 create mode 100644 docker/Dockerfile
 rename {.ci => docker}/create_dev_env.sh (97%)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 087e960..b6e0fa5 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,10 +1,32 @@
 stages:
+ - docker
  - test
 
 
-.test: &test_template
+# Build docker image used for unit tests
+build-dev-docker-image:
+  stage: docker
+  image: docker:latest
+  tags:
+    - docker_build
+  services:
+    - docker:dind
+  when: manual
+  allow_failure: true
+
+  script:
+    - mkdir -p $HOME/.docker/
+    - echo $DOCKER_AUTH_CONFIG > $HOME/.docker/config.json
+    - TAG="$(date +%Y%m%d).${CI_COMMIT_SHORT_SHA}"
+    - IMAGE="pauldmccarthy/bip-dev"
+    - DOCKERFILE=docker/Dockerfile
+    - docker build -t "${IMAGE}:${TAG}" -t "${IMAGE}:latest" -f ${DOCKERFILE} ./docker
+    - docker push "${IMAGE}:${TAG}"
+    - docker push "${IMAGE}:latest"
+
+test:
   stage: test
-  image: continuumio/miniconda3
+  image: pauldmccarthy/bip-dev
   tags:
     - docker
   except:
@@ -12,9 +34,3 @@ stages:
     - merge_requests
   script:
     - ./.ci/unit_tests.sh
-
-
-test:3.11:
-  variables:
-    PYTHON_VERSION : "3.11"
-  <<: *test_template
diff --git a/docker/Dockerfile b/docker/Dockerfile
new file mode 100644
index 0000000..ffdcafa
--- /dev/null
+++ b/docker/Dockerfile
@@ -0,0 +1,8 @@
+FROM continuumio/miniconda3
+MAINTAINER Paul McCarthy <pauldmccarthy@gmail.com>
+
+ENV PYTHON_VERSION "3.11"
+
+COPY /create_dev_env.sh /create_dev_env.sh
+
+RUN /bin/bash /create_dev_env.sh /dev.env
diff --git a/.ci/create_dev_env.sh b/docker/create_dev_env.sh
similarity index 97%
rename from .ci/create_dev_env.sh
rename to docker/create_dev_env.sh
index 8b1b978..0f3f5b3 100755
--- a/.ci/create_dev_env.sh
+++ b/docker/create_dev_env.sh
@@ -23,3 +23,5 @@ source activate ${envdir}
 pip install dmri-amico
 pip install git+https://git.fmrib.ox.ac.uk/ndcn0236/pipe-tree.git
 pip install git+https://git.fmrib.ox.ac.uk/fsl/gradunwarp.git
+
+# CREATE DOCKER IMAGE
-- 
GitLab