From 6984a41af73b2f346d9a3a8d9587194e41503dd0 Mon Sep 17 00:00:00 2001 From: Ansgar Burchardt Date: Wed, 6 Sep 2017 18:56:51 +0200 Subject: [PATCH] build DUNE modules in parallel when building Docker images --- .gitlab-ci.yml | 6 +++--- bin/duneci-build-docker-image | 10 ++++++++++ dune-fufem-git/Dockerfile | 1 + dune-fufem/Dockerfile | 1 + dune-git/Dockerfile | 1 + 5 files changed, 16 insertions(+), 3 deletions(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 6d97e4e..a6459a4 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -98,21 +98,21 @@ dune:2.5: dune:git: stage: stage2 script: - - ./bin/duneci-build-docker-image --no-cache duneci/dune:git dune-git + - ./bin/duneci-build-docker-image --parallel --no-cache duneci/dune:git dune-git only: - master@ansgar/dune-docker dune-fufem:2.4: stage: stage3 script: - - ./bin/duneci-build-docker-image duneci/dune-fufem:2.4 dune-fufem + - ./bin/duneci-build-docker-image --parallel duneci/dune-fufem:2.4 dune-fufem only: - master@ansgar/dune-docker dune-fufem:git: stage: stage3 script: - - ./bin/duneci-build-docker-image --no-cache duneci/dune-fufem:git dune-fufem-git + - ./bin/duneci-build-docker-image --parallel --no-cache duneci/dune-fufem:git dune-fufem-git only: - master@ansgar/dune-docker diff --git a/bin/duneci-build-docker-image b/bin/duneci-build-docker-image index e8286b5..5d28659 100755 --- a/bin/duneci-build-docker-image +++ b/bin/duneci-build-docker-image @@ -27,8 +27,14 @@ if [[ $# -lt 2 ]]; then usage fi +parallel= + while :; do case "${1}" in + --parallel) + parallel=1 + shift + ;; -*) docker_opts+=("${1}") shift @@ -41,6 +47,10 @@ done image="${1}"; shift +if [[ -n "${parallel}" -a -v DUNECI_PARALLEL ]]; then + docker_opts+=(--build-arg=DUNECI_PARALLEL="${DUNECI_PARALLEL}") +fi + builddir="build/${image##*/}" if [[ -e ${builddir} ]]; then echo "E: ${builddir} already exists" >&2 diff --git a/dune-fufem-git/Dockerfile b/dune-fufem-git/Dockerfile index 462be83..d540c67 100644 --- a/dune-fufem-git/Dockerfile +++ b/dune-fufem-git/Dockerfile @@ -1,4 +1,5 @@ FROM duneci/dune:git +ARG DUNECI_PARALLEL USER duneci WORKDIR /duneci/modules diff --git a/dune-fufem/Dockerfile b/dune-fufem/Dockerfile index 4600e39..3c3aa40 100644 --- a/dune-fufem/Dockerfile +++ b/dune-fufem/Dockerfile @@ -1,4 +1,5 @@ FROM duneci/dune:2.4 +ARG DUNECI_PARALLEL USER root WORKDIR / diff --git a/dune-git/Dockerfile b/dune-git/Dockerfile index a2c5dc3..b76e0f7 100644 --- a/dune-git/Dockerfile +++ b/dune-git/Dockerfile @@ -1,4 +1,5 @@ FROM duneci/base:9 +ARG DUNECI_PARALLEL USER duneci RUN duneci-install-module https://gitlab.dune-project.org/core/dune-common.git \ -- GitLab