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