From d3af0fd937dda4f5f7850f33bcd6ac563e1a68b6 Mon Sep 17 00:00:00 2001
From: Dominic Kempf <dominic.kempf@iwr.uni-heidelberg.de>
Date: Wed, 13 May 2020 16:38:17 +0000
Subject: [PATCH] Build docker images with spack inside

This prevents that the executing runner needs to be prepared to access GitHub
---
 .gitlab-ci.yml     | 14 ++++++--------
 Dockerfile         | 19 +++++++++++++++++++
 build_ci_images.sh |  9 +++++++++
 3 files changed, 34 insertions(+), 8 deletions(-)
 create mode 100644 Dockerfile
 create mode 100755 build_ci_images.sh

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index 389b3ff..f7f0c16 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -1,14 +1,12 @@
 ---
 
 before_script:
-  - git clone -b v$SPACK_VERSION https://github.com/spack/spack.git
-  - . ./spack/share/spack/setup_env.sh
+  - pwd
+  - . /spack/share/spack/setup-env.sh
   - spack repo add .
 
-image: registry.dune-project.org/docker/ci/debian:10
-
 spectest:v0.14.2:
-  variables:
-    - SPACK_VERSION : "0.14.2"
-  script:
-    - spack spec dune
+  image: registry.dune-project.org/spack/dune-spack:v0.14.2
+  script: spack spec dune
+  tags:
+    - cores:1
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 0000000..4a9f0b1
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,19 @@
+# This is a Dockerfile that sets up a simple Docker image for CI testing
+# We need this, because we need to install spack into the Docker image
+# in order to avoid the runners requiring access to Github.
+FROM debian:latest
+MAINTAINER dominic.kempf@iwr.uni-heidelberg.de
+
+RUN export DEBIAN_FRONTEND=noninteractive; \
+  apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
+  && apt-get install --no-install-recommends --yes \
+  build-essential \
+  ca-certificates \
+  git             \
+  procps          \
+  python          \
+  python-dev      \
+  && apt-get clean && rm -rf /var/lib/apt/lists/*
+
+ARG version=master
+RUN git clone -b $version https://github.com/spack/spack.git
diff --git a/build_ci_images.sh b/build_ci_images.sh
new file mode 100755
index 0000000..f10caf9
--- /dev/null
+++ b/build_ci_images.sh
@@ -0,0 +1,9 @@
+#!/bin/bash
+
+set -e
+version="$1"
+
+docker build -t registry.dune-project.org/spack/dune-spack:$version --build-arg version=$version .
+docker login registry.dune-project.org
+docker push registry.dune-project.org/spack/dune-spack:$version
+docker logout registry.dune-project.org