Commit 0e9686f2 authored by Ansgar Burchardt's avatar Ansgar Burchardt

remove source for CI images

parent 41afa12d
FROM debian:buster
MAINTAINER Ansgar.Burchardt@tu-dresden.de
RUN rm -f /etc/apt/apt.conf.d/docker-gzip-indexes \
&& rm -rf /var/lib/apt/lists/*
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
&& apt-get install --no-install-recommends --yes \
autoconf \
automake \
bison \
build-essential \
ca-certificates \
clang-5.0 \
cmake \
coinor-libipopt-dev \
curl \
flex \
gfortran \
git \
git-lfs \
gnuplot-nox \
libadolc-dev \
libalberta-dev \
libarpack++2-dev \
libboost-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-system-dev \
libgtest-dev \
libltdl-dev \
libscotchmetis-dev \
libscotchparmetis-dev \
libsuitesparse-dev \
libsuperlu-dev \
libtinyxml2-dev \
libtool \
locales-all \
mpi-default-bin \
mpi-default-dev \
ninja-build \
openssh-client \
pkg-config \
python-dev \
python-numpy \
python-vtk6 \
python3 \
python3-dev \
python3-matplotlib \
python3-mpi4py \
python3-numpy \
python3-pip \
python3-pytest \
python3-scipy \
vc-dev \
libgmp-dev \
libeigen3-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --home /duneci --uid 50000 duneci
USER duneci
WORKDIR /duneci
RUN mkdir -p /duneci/bin /duneci/modules
ENV DUNE_CONTROL_PATH=.:/duneci/modules
ENV PATH=/duneci/bin:$PATH
COPY opts.clang opts.gcc opts.gcc.c++17 /duneci/
COPY dune-ctest /duneci/bin/
RUN ln -s dune-ctest /duneci/bin/duneci-ctest
COPY duneci-install-module /duneci/bin/
COPY duneci-standard-test /duneci/bin/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/clang++-5.0 -DCMAKE_C_COMPILER=/usr/bin/clang-5.0 -DCXX_MAX_STANDARD=17 -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fcolor-diagnostics -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCXX_MAX_STANDARD=17 -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
FROM ubuntu:16.04
MAINTAINER Ansgar.Burchardt@tu-dresden.de
RUN rm -f /etc/apt/apt.conf.d/docker-gzip-indexes \
&& rm -rf /var/lib/apt/lists/*
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
&& apt-get install --no-install-recommends --yes \
autoconf \
automake \
bison \
build-essential \
ca-certificates \
clang \
cmake \
coinor-libipopt-dev \
curl \
flex \
gfortran \
git \
gnuplot-nox \
libadolc-dev \
libalberta-dev \
libarpack++2-dev \
libboost-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-system-dev \
libgtest-dev \
libltdl-dev \
libscotchmetis-dev \
libsuitesparse-dev \
libsuperlu-dev \
libtinyxml2-dev \
libtool \
locales-all \
mpi-default-bin \
mpi-default-dev \
ninja-build \
openssh-client \
pkg-config \
python-dev \
python-numpy \
python-vtk6 \
python3 \
python3-dev \
python3-matplotlib \
python3-mpi4py \
python3-numpy \
python3-pip \
python3-pytest \
python3-scipy \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --home /duneci --uid 50000 duneci
USER duneci
WORKDIR /duneci
RUN mkdir -p /duneci/bin /duneci/modules
ENV DUNE_CONTROL_PATH=.:/duneci/modules
ENV PATH=/duneci/bin:$PATH
COPY opts.clang opts.gcc /duneci/
COPY dune-ctest /duneci/bin/
RUN ln -s dune-ctest /duneci/bin/duneci-ctest
COPY duneci-install-module /duneci/bin/
COPY duneci-standard-test /duneci/bin/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER='/usr/bin/clang++' -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fcolor-diagnostics -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
CMAKE_FLAGS="-DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
FROM ubuntu:18.04
MAINTAINER Ansgar.Burchardt@tu-dresden.de
RUN rm -f /etc/apt/apt.conf.d/docker-gzip-indexes \
&& rm -rf /var/lib/apt/lists/*
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
&& apt-get install --no-install-recommends --yes \
autoconf \
automake \
bison \
build-essential \
ca-certificates \
clang \
cmake \
coinor-libipopt-dev \
curl \
flex \
gfortran \
git \
git-lfs \
gnuplot-nox \
libadolc-dev \
libalberta-dev \
libarpack++2-dev \
libboost-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-system-dev \
libgtest-dev \
libltdl-dev \
libscotchmetis-dev \
libscotchparmetis-dev \
libsuitesparse-dev \
libsuperlu-dev \
libtinyxml2-dev \
libtool \
locales-all \
mpi-default-bin \
mpi-default-dev \
ninja-build \
openssh-client \
pkg-config \
python-dev \
python-numpy \
python-vtk6 \
python3 \
python3-dev \
python3-matplotlib \
python3-mpi4py \
python3-numpy \
python3-pip \
python3-pytest \
python3-scipy \
vc-dev \
libgmp-dev \
libeigen3-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --home /duneci --uid 50000 duneci
USER duneci
WORKDIR /duneci
RUN mkdir -p /duneci/bin /duneci/modules
ENV DUNE_CONTROL_PATH=.:/duneci/modules
ENV PATH=/duneci/bin:$PATH
COPY opts.clang opts.gcc opts.gcc.c++17 /duneci/
COPY dune-ctest /duneci/bin/
RUN ln -s dune-ctest /duneci/bin/duneci-ctest
COPY duneci-install-module /duneci/bin/
COPY duneci-standard-test /duneci/bin/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/clang++ -DCMAKE_C_COMPILER=/usr/bin/clang -DCXX_MAX_STANDARD=17 -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fcolor-diagnostics -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER=/usr/bin/g++ -DCMAKE_C_COMPILER=/usr/bin/gcc -DCXX_MAX_STANDARD=17 -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}} -DCMAKE_INSTALL_PREFIX=/duneci/install"
FROM duneci/base:8
MAINTAINER Ansgar.Burchardt@tu-dresden.de
USER root
RUN echo "deb http://httpredir.debian.org/debian jessie-backports main contrib non-free" > /etc/apt/sources.list.d/jessie-backports.list
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get install --no-install-recommends --yes \
clang-3.8 \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
USER duneci
COPY opts.clang /duneci/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER='/usr/bin/clang++-3.8' -DCMAKE_C_COMPILER=/usr/bin/clang-3.8 -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fcolor-diagnostics -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
FROM debian:8
MAINTAINER Ansgar.Burchardt@tu-dresden.de
RUN rm -f /etc/apt/apt.conf.d/docker-gzip-indexes \
&& rm -rf /var/lib/apt/lists/*
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
&& apt-get install --no-install-recommends --yes \
autoconf \
automake \
bison \
build-essential \
ca-certificates \
clang \
cmake \
coinor-libipopt-dev \
curl \
flex \
gfortran \
git \
gnuplot-nox \
libadolc-dev \
libalberta-dev \
libarpack++2-dev \
libboost-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-system-dev \
libgtest-dev \
libltdl-dev \
libscotchmetis-dev \
libsuitesparse-dev \
libsuperlu-dev \
libtinyxml2-dev \
libtool \
locales-all \
mpi-default-bin \
mpi-default-dev \
ninja-build \
openssh-client \
pkg-config \
python-dev \
python-numpy \
python-vtk6 \
python3 \
python3-dev \
python3-matplotlib \
python3-mpi4py \
python3-numpy \
python3-pip \
python3-pytest \
python3-scipy \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --home /duneci --uid 50000 duneci
USER duneci
WORKDIR /duneci
RUN mkdir -p /duneci/bin /duneci/modules
ENV DUNE_CONTROL_PATH=.:/duneci/modules
ENV PATH=/duneci/bin:$PATH
COPY opts.clang opts.gcc /duneci/
COPY dune-ctest /duneci/bin/
RUN ln -s dune-ctest /duneci/bin/duneci-ctest
COPY duneci-install-module /duneci/bin/
COPY duneci-standard-test /duneci/bin/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER='/usr/bin/clang++' -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_FLAGS='-O2 -Wall -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
CMAKE_FLAGS="-DCMAKE_CXX_FLAGS='-O2 -g -Wall' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
FROM debian:stretch
MAINTAINER Ansgar.Burchardt@tu-dresden.de
RUN rm -f /etc/apt/apt.conf.d/docker-gzip-indexes \
&& rm -rf /var/lib/apt/lists/*
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get dist-upgrade --no-install-recommends --yes \
&& apt-get install --no-install-recommends --yes \
autoconf \
automake \
bison \
build-essential \
ca-certificates \
clang \
cmake \
coinor-libipopt-dev \
curl \
flex \
gfortran \
git \
gnuplot-nox \
libadolc-dev \
libalberta-dev \
libarpack++2-dev \
libboost-dev \
libboost-program-options-dev \
libboost-serialization-dev \
libboost-system-dev \
libgtest-dev \
libltdl-dev \
libscotchmetis-dev \
libscotchparmetis-dev \
libsuitesparse-dev \
libsuperlu-dev \
libtinyxml2-dev \
libtool \
locales-all \
mpi-default-bin \
mpi-default-dev \
ninja-build \
openssh-client \
pkg-config \
python-dev \
python-numpy \
python-vtk6 \
python3 \
python3-dev \
python3-matplotlib \
python3-mpi4py \
python3-numpy \
python3-pip \
python3-pytest \
python3-scipy \
libgmp-dev \
libeigen3-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
RUN adduser --disabled-password --home /duneci --uid 50000 duneci
USER duneci
WORKDIR /duneci
RUN mkdir -p /duneci/bin /duneci/modules
ENV DUNE_CONTROL_PATH=.:/duneci/modules
ENV PATH=/duneci/bin:$PATH
COPY opts.clang opts.gcc /duneci/
COPY dune-ctest /duneci/bin/
RUN ln -s dune-ctest /duneci/bin/duneci-ctest
COPY duneci-install-module /duneci/bin/
COPY duneci-standard-test /duneci/bin/
CMAKE_FLAGS="-DCMAKE_CXX_COMPILER='/usr/bin/clang++' -DCMAKE_C_COMPILER=/usr/bin/clang -DCMAKE_CXX_FLAGS='-O2 -g -Wall -fcolor-diagnostics -ftemplate-backtrace-limit=0' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
CMAKE_FLAGS="-DCMAKE_CXX_FLAGS='-O2 -g -Wall -fdiagnostics-color=always' ${DUNECI_PARALLEL:+-DDUNE_MAX_TEST_CORES=${DUNECI_PARALLEL}}"
#! /usr/bin/env python3
#
# Wrapper around CTest for DUNE
#
# CTest returns with an error status not only when tests failed, but also
# when tests were only skipped. This wrapper checks the log and returns
# successfully if no tests failed; skipped tests do not result in an error.
# This behaviour is needed in a continuous integration environment, when
# building binary packages or in other cases where the testsuite should be
# run automatically.
#
# Author: Ansgar Burchardt <Ansgar.Burchardt@tu-dresden.de>
import errno
import glob
import os.path
import shutil
import subprocess
import sys
import xml.etree.ElementTree
def printTest(test):
status = test.get("Status")
name = test.find("Name").text
fullName = test.find("FullName").text
output = test.find("Results").find("Measurement").find("Value").text
print("======================================================================")
print("Name: {}".format(name))
print("FullName: {}".format(fullName))
print("Status: {}".format(status.upper()))
if output:
print("Output:")
for line in output.splitlines():
print(" ", line)
print()
def handleTest(test):
status = test.get("Status")
name = test.find("Path").text
if status == "passed":
passed = True
elif status == "notrun":
printTest(test)
passed = True
else:
printTest(test)
passed = False
return passed
def findCTestOutput():
files = glob.glob("Testing/*/Test.xml")
if len(files) != 1:
fn = files.join(", ")
raise Exception("Found multiple CTest output files: {}".format(files.join(", ")))
return files[0]
def handleCTestOutput():
path = findCTestOutput()
with open(path, "r", encoding="latin-1") as fh:
tree = xml.etree.ElementTree.parse(fh)
root = tree.getroot()
testing = root.find("Testing")
passed = True
for test in testing.findall("Test"):
testPassed = handleTest(test)
passed = passed and testPassed
return passed
def runCTest(argv=[]):
cmd = ["ctest",
"--output-on-failure",
"--dashboard", "ExperimentalTest",
"--no-compress-output",
]
cmd.extend(argv)
subprocess.call(cmd)
def checkDirectory():
if not os.path.exists("CMakeCache.txt"):
raise Exception("ERROR: dune-ctest must be run in a cmake build directory")
def removeCTestOutput():
try:
shutil.rmtree("Testing")
except OSError as e:
if e.errno != errno.ENOENT:
raise
def main():
try:
checkDirectory()
removeCTestOutput()
runCTest(argv=sys.argv[1:])
passed = handleCTestOutput()
status = 0 if passed else 1
sys.exit(status)
except Exception as e:
print("Internal error: {}".format(e))
sys.exit(127)
if __name__ == "__main__":
main()
#! /bin/bash
# Author: Ansgar Burchardt <Ansgar.Burchardt@tu-dresden.de>
set -e
set -u
usage() {
echo "usage: duneci-install-module [options] <Git-repository> <dunecontrol-opts>" >&2
echo >&2
echo "options:" >&2
echo " -b <branch>, --branch <branch>: Install branch <branch> of the module." >&2
echo " -r, --recursive: Clone the git repository with --recursive (for git submodules)." >&2
echo >&2
echo "environment variables:" >&2
echo " DUNECI_BRANCH:" >&2
echo " branch to use if none is specified via -b|--branch;" >&2
echo " empty for default branch (usually 'master'); default: ''" >&2
echo " DUNECI_BRANCH_AUTO:" >&2
echo " if '1', try to use the same branch as build by the CI system," >&2
echo " that is \${CI_BUILD_REF_NAME}; default: '1'" >&2
exit ${1:-0}
}
if [[ $# -eq 0 ]]; then
usage 0
fi
branch="${DUNECI_BRANCH:-}"
recursive=
while :; do
case "${1}" in
-b|--branch)
branch="${2}"
shift 2
;;
-r|--recursive)
recursive=1
shift 1
;;
*)
break
;;
esac
done
repo="${1}"
module="${repo##*/}"; module="${module%.git}"
shift
cd /duneci/modules
if [[ -d "${module}" ]]; then
echo "Module ${module} is already installed." >&2
exit 1
fi
git_clone_opts=(--depth=1 --no-single-branch)
if [[ -n "${branch}" ]]; then
git_clone_opts+=(-b "${branch}")
fi
if [[ -n "${recursive}" ]]; then
git_clone_opts+=("--recursive")
fi
git clone "${git_clone_opts[@]}" "${repo}"
if [[ "${DUNECI_BRANCH_AUTO:-1}" = "1" && -n "${CI_BUILD_REF_NAME:-}" ]]; then
# It is not an error if ${CI_BUILD_REF_NAME} is not a branch
# in the module we are about to install.
git -C "${module}" checkout "${CI_BUILD_REF_NAME}" || :
fi
if [[ "${module}" = dune-common ]]; then
for f in dunecontrol dune-ctest; do
src=/duneci/modules/dune-common/bin/${f}
if [[ -x ${src} ]]; then
ln -sf ${src} /duneci/bin/
fi
done
fi
opts="${DUNECI_OPTS:-/duneci/opts.gcc}"
if [[ -v DUNECI_PARALLEL ]]; then
set -- --make-opts="-j${DUNECI_PARALLEL}" "${@}"
fi
(
cd "${module}"
git_branch=$(git symbolic-ref HEAD 2>/dev/null || echo "(unknown)")
git_branch="${git_branch#refs/heads/}"
echo
echo "Installing ${module}; branch ${git_branch}"
echo " commit: $(git rev-parse HEAD)"
echo " date: $(git log -1 --format='tformat:%ci') (commit)"
echo " using opts file ${opts}"
echo
)
dunecontrol --opts="${opts}" "${@}" --only="${module}" all
#! /bin/bash
set -e
set -u
: ${DUNECI_OPTS:=/duneci/opts.gcc}
set -- --opts="${DUNECI_OPTS}" "${@}"
DUNECONTROL=dunecontrol
if [[ -x bin/dunecontrol ]]; then
DUNECONTROL=bin/dunecontrol
fi
DUNE_CTEST=duneci-ctest
if [[ -x bin/dune-ctest ]]; then
DUNE_CTEST=../bin/dune-ctest
fi
parallel_opts=
if [[ -v DUNECI_PARALLEL ]]; then
parallel_opts="-j${DUNECI_PARALLEL}"
fi
assert_label_valid()
{
if [[ $1 != +([[:word:]-]) ]]; then
cat >&2 <<EOF
duneci-standard-test: Error: Invalid label in DUNECI_TEST_LABELS: '$label'
duneci-standard-test: Note: Only alphanumeric characters plus '_' and '-' are
duneci-standard-test: Note: allowed in label names, and the names must be
duneci-standard-test: Note: non-empty.
EOF
exit 2
fi
}
# Parse labels in $1 and set ${parsed_targets[@]} and ${parsed_selectors[@]}
# accordingly. Labels in $1 may be seperated by whitespace or ','.
parse_labels()
{
# use a function to automatically restore IFS
local IFS="$IFS," label regexs status=1
parsed_targets=()
regexs=()
for label in $1; do
# ensure the labels can be safely handled
assert_label_valid "$label"
parsed_targets+=("build_${label}_tests")
regexs+=("^${label}\$")
status=0 # we found at least one label
done
parsed_selectors=()
if [[ ${#regexs[@]} -gt 0 ]]; then
# This will join all regexps using '|' from IFS
IFS="|"
parsed_selectors=(-L "${regexs[*]}")
fi
return $status
}
build_test_targets=(build_tests) # passed to make/ninja to build tests
select_test_args=() # passed to ctest to select tests
if parse_labels "${DUNECI_TEST_LABELS-}"; then
build_test_targets=("${parsed_targets[@]}")
select_test_args=("${parsed_selectors[@]}")
fi
# Allow oversubscription (tests might want to try having more ranks
# than environment has processors) and force degraded mode (as we
# might run multiple tests in parallel and this is not good with
# OpenMPI's agressive mode)
# References:
# - https://bugs.debian.org/850229
# - https://gitlab.dune-project.org/core/dune-grid/issues/67
# - https://www.open-mpi.org/faq/?category=running#oversubscribing
export OMPI_MCA_rmaps_base_oversubscribe=1
export OMPI_MCA_mpi_yield_when_idle=1
set -x
${DUNECONTROL} --current "${@}" vcsetup
${DUNECONTROL} --current "${@}" configure
${DUNECONTROL} --current "${@}" make ${parallel_opts} all
if [[ "${DUNECI_TEST_INSTALL:-0}" != 0 ]] ; then
${DUNECONTROL} --current "${@}" make ${parallel_opts} install
fi
${DUNECONTROL} --current "${@}" make ${parallel_opts} "${build_test_targets[@]}"
# note the extra quoting for select_test_args to protect it from dunecontrol evaling it
${DUNECONTROL} --current "${@}" bexec ${DUNE_CTEST} ${parallel_opts} ${select_test_args[@]:+"${select_test_args[@]@Q}"}
FROM duneci/base:8
USER root
WORKDIR /
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get install --no-install-recommends --yes \
libdune-common-dev \
libdune-geometry-dev \
libdune-grid-dev \
libdune-localfunctions-dev \
libdune-istl-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
USER duneci
WORKDIR /duneci
FROM duneci/base:16.04
USER root
WORKDIR /
RUN export DEBIAN_FRONTEND=noninteractive; \
apt-get update && apt-get install --no-install-recommends --yes \
libdune-common-dev \
libdune-geometry-dev \
libdune-grid-dev \
libdune-localfunctions-dev \
libdune-istl-dev \
&& apt-get clean && rm -rf /var/lib/apt/lists/*
# patch from commit 652c97d013df39f7192f2d5d54000c36e04fe0de
RUN sed -i -e '/check_include_files/ iinclude(CheckIncludeFiles)' /usr/share/dune/cmake/modules/FindAlberta.cmake
USER duneci
WORKDIR /duneci
FROM duneci/base:9
ARG DUNECI_PARALLEL
USER duneci
RUN duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/core/dune-common.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/core/dune-geometry.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/staging/dune-uggrid.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/core/dune-grid.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/core/dune-istl.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/core/dune-localfunctions.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/staging/dune-typetree.git \
&& duneci-install-module -b releases/2.5 https://gitlab.dune-project.org/staging/dune-functions.git
FROM duneci/base:10
ARG DUNECI_PARALLEL
USER duneci
RUN duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/core/dune-common.git \
&& duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/core/dune-geometry.git \
&& duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/staging/dune-uggrid.git \
&& duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/core/dune-grid.git \
&& duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/core/dune-istl.git \
&& duneci-install-module -b releases/2.6 https://gitlab.dune-project.org/core/dune-localfunctions.git \