diff --git a/.ci/azure/pipelines.yml b/.ci/azure/pipelines.yml new file mode 100644 index 0000000000000000000000000000000000000000..f1b3d688078aeb970b7b879c132929e44df89a44 --- /dev/null +++ b/.ci/azure/pipelines.yml @@ -0,0 +1,27 @@ +# kate: indent-width 2; + +resources: + repositories: + - repository: templates + type: github + name: dune-community/dune-xt-ci + endpoint: dune-xt-ci + +jobs: +- template: azure-job-template.yml@templates + parameters: + dockerimage: debian-unstable_gcc_full + jobname: 'unstable_gcc' + module: 'dune-xt-la' + +- template: azure-job-template.yml@templates + parameters: + dockerimage: debian_gcc_full + jobname: 'gcc' + module: 'dune-xt-la' + +- template: azure-job-template.yml@templates + parameters: + dockerimage: debian_clang_full + jobname: 'clang' + module: 'dune-xt-la' diff --git a/.ci/shared b/.ci/shared new file mode 160000 index 0000000000000000000000000000000000000000..64bbb1b35792b945fb9ffa87f5de324698ed5cb4 --- /dev/null +++ b/.ci/shared @@ -0,0 +1 @@ +Subproject commit 64bbb1b35792b945fb9ffa87f5de324698ed5cb4 diff --git a/.gitmodules b/.gitmodules index c14484f01c6707711f326763207045bbfced62e0..7aa1af41fc046cc54af46cb59eec18a989ba9d0f 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@ [submodule ".vcsetup"] path = .vcsetup url = https://github.com/dune-community/vcsetup.git +[submodule ".ci/shared"] + path = .ci/shared + url = https://github.com/dune-community/dune-xt-ci diff --git a/.travis.after_script.bash b/.travis.after_script.bash deleted file mode 100755 index 42c3c618e8d1518a46dc9deeb72fccf343c2e43f..0000000000000000000000000000000000000000 --- a/.travis.after_script.bash +++ /dev/null @@ -1,35 +0,0 @@ -#!/bin/bash -# -# ~~~ -# This file is part of the dune-xt-la project: -# https://github.com/dune-community/dune-xt-la -# Copyright 2009-2018 dune-xt-la developers and contributors. All rights reserved. -# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# or GPL-2.0+ (http://opensource.org/licenses/gpl-license) -# with "runtime exception" (http://www.dune-project.org/license.html) -# Authors: -# Felix Schindler (2017) -# René Fritze (2017 - 2018) -# ~~~ - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** -# this file is treated as a jinja2 template - -WAIT="${SUPERDIR}/scripts/bash/travis_wait_new.bash 45" -source ${SUPERDIR}/scripts/bash/retry_command.bash - -if [[ $TRAVIS_JOB_NUMBER == *.2 ]] ; then - git config --global hooks.clangformat ${CLANG_FORMAT} - CHECK_DIR=${SUPERDIR}/${MY_MODULE} - PYTHONPATH=${SUPERDIR}/scripts/python/ python3 -c "import travis_report as tp; tp.clang_format_status(\"${CHECK_DIR}\")" - ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} configure - ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} make doc - ${SUPERDIR}/.ci/init_sshkey.bash ${encrypted_862ca47045d1_key} ${encrypted_862ca47045d1_iv} keys/dune-community/dune-community.github.io - ${SUPERDIR}/.ci/deploy_docs.sh ${MY_MODULE} "${DUNE_BUILD_DIR}" -fi - -${SUPERDIR}/.ci/init_sshkey.bash ${encrypted_862ca47045d1_key} ${encrypted_862ca47045d1_iv} keys/dune-community/dune-xt-la-testlogs -# retry this step because of the implicated race condition in cloning and pushing with multiple builder running in parallel -retry_command ${SUPERDIR}/scripts/bash/travis_upload_test_logs.bash ${DUNE_BUILD_DIR}/${MY_MODULE}/dune/xt/*/test/ - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** \ No newline at end of file diff --git a/.travis.make_env_file.py b/.travis.make_env_file.py deleted file mode 100644 index a0e49a1e2e0c05a135aaa245191be61ef6da1acd..0000000000000000000000000000000000000000 --- a/.travis.make_env_file.py +++ /dev/null @@ -1,26 +0,0 @@ -#!/usr/bin/env python3 -# -# ~~~ -# This file is part of the dune-xt-la project: -# https://github.com/dune-community/dune-xt-la -# Copyright 2009-2018 dune-xt-la developers and contributors. All rights reserved. -# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# or GPL-2.0+ (http://opensource.org/licenses/gpl-license) -# with "runtime exception" (http://www.dune-project.org/license.html) -# Authors: -# René Fritze (2017 - 2019) -# ~~~ - -import os -from os.path import expanduser -from shlex import quote -home = expanduser("~") - -prefixes = os.environ.get('ENV_PREFIXES', 'TRAVIS DRONE GITLAB CODECOV CI encrypt TOKEN TESTS').split(' ') -blacklist = ['TRAVIS_COMMIT_MESSAGE'] -env_file = os.environ.get('ENV_FILE', os.path.join(home, 'env')) -with open(env_file, 'wt') as env: - for k, v in os.environ.items(): - for pref in prefixes: - if k.startswith(pref) and k not in blacklist: - env.write('{}={}\n'.format(k, quote(v))) diff --git a/.travis.script.bash b/.travis.script.bash deleted file mode 100755 index ee39477aa3511a9954ad8f17a2120a546f893956..0000000000000000000000000000000000000000 --- a/.travis.script.bash +++ /dev/null @@ -1,67 +0,0 @@ -#!/bin/bash -# -# ~~~ -# This file is part of the dune-xt-la project: -# https://github.com/dune-community/dune-xt-la -# Copyright 2009-2018 dune-xt-la developers and contributors. All rights reserved. -# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# or GPL-2.0+ (http://opensource.org/licenses/gpl-license) -# with "runtime exception" (http://www.dune-project.org/license.html) -# Authors: -# Felix Schindler (2017) -# René Fritze (2017 - 2018) -# Tobias Leibner (2018) -# ~~~ - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** -# this file is treated as a jinja2 template - -set -e -set -x - -WAIT="${SUPERDIR}/scripts/bash/travis_wait_new.bash 45" -source ${SUPERDIR}/scripts/bash/retry_command.bash - -${SRC_DCTRL} ${BLD} --only=${MY_MODULE} configure -${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} -if [ x"${TESTS}" == x ] ; then - ${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} test_binaries -else - ${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} test_binaries_builder_${TESTS} -fi - -source ${OPTS} -CTEST="ctest -V --timeout ${DXT_TEST_TIMEOUT:-300} -j ${DXT_TEST_PROCS:-2}" - -if [ x"${TESTS}" == x ] ; then - ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${CTEST} - ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} headercheck -else - # with binning headercheck is included in building tests - ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${CTEST} -L "^builder_${TESTS}$" -fi - -# clang coverage currently disabled for being to mem hungry -if [[ ${CC} == *"clang"* ]] ; then - echo "Coverage reporting disabled with Clang" - exit 0 -fi - -if [ "${TRAVIS_SECURE_ENV_VARS}" == "false" ] ; then - echo "Coverage reporting disabled for forked repo/PR" - exit 0 -fi - -pushd ${DUNE_BUILD_DIR}/${MY_MODULE} -COVERAGE_INFO=${PWD}/coverage.info -lcov --directory . --output-file ${COVERAGE_INFO} --ignore-errors gcov -c -for d in "dune-common" "dune-pybindxi" "dune-geometry" "dune-istl" "dune-grid" "dune-alugrid" "dune-uggrid" "dune-localfunctions" ; do - lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${d}/*" -done -lcov --directory . --output-file ${COVERAGE_INFO} -r ${COVERAGE_INFO} "${SUPERDIR}/${MY_MODULE}/dune/xt/*/test/*" -cd ${SUPERDIR}/${MY_MODULE} -${OLDPWD}/run-in-dune-env pip install codecov -${OLDPWD}/run-in-dune-env codecov -v -X gcov -X coveragepy -F ctest -f ${COVERAGE_INFO} -t ${CODECOV_TOKEN} -popd - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** \ No newline at end of file diff --git a/.travis.test_python.bash b/.travis.test_python.bash deleted file mode 100755 index b17eb8540bdf306a44e8815acde6ebc89fb6f5a7..0000000000000000000000000000000000000000 --- a/.travis.test_python.bash +++ /dev/null @@ -1,38 +0,0 @@ -#!/bin/bash -# -# ~~~ -# This file is part of the dune-xt-la project: -# https://github.com/dune-community/dune-xt-la -# Copyright 2009-2018 dune-xt-la developers and contributors. All rights reserved. -# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# or GPL-2.0+ (http://opensource.org/licenses/gpl-license) -# with "runtime exception" (http://www.dune-project.org/license.html) -# Authors: -# René Fritze (2018) -# Tobias Leibner (2018) -# ~~~ - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** -# this file is treated as a jinja2 template - -set -e -set -x - -WAIT="${SUPERDIR}/scripts/bash/travis_wait_new.bash 45" -source ${SUPERDIR}/scripts/bash/retry_command.bash - -${SRC_DCTRL} ${BLD} --only=${MY_MODULE} configure -${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} -${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} bindings -${WAIT} ${SRC_DCTRL} ${BLD} --only=${MY_MODULE} bexec ${BUILD_CMD} test_python - -if [ "${TRAVIS_SECURE_ENV_VARS}" == "false" ] ; then - echo "Coverage reporting disabled for forked repo/PR" - exit 0 -fi - -cd ${SUPERDIR}/${MY_MODULE} -${DUNE_BUILD_DIR}/${MY_MODULE}/run-in-dune-env pip install codecov -${DUNE_BUILD_DIR}/${MY_MODULE}/run-in-dune-env codecov -X gcov -F pytest -t ${CODECOV_TOKEN} - -# ****** THIS FILE IS AUTOGENERATED, DO NOT EDIT ********** \ No newline at end of file diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index e6e1875290f635b56cbb4972a5e9967d665debf9..0000000000000000000000000000000000000000 --- a/.travis.yml +++ /dev/null @@ -1,97 +0,0 @@ -# ~~~ -# This file is part of the dune-xt-la project: -# https://github.com/dune-community/dune-xt-la -# Copyright 2009-2018 dune-xt-la developers and contributors. All rights reserved. -# License: Dual licensed as BSD 2-Clause License (http://opensource.org/licenses/BSD-2-Clause) -# or GPL-2.0+ (http://opensource.org/licenses/gpl-license) -# with "runtime exception" (http://www.dune-project.org/license.html) -# Authors: -# Felix Schindler (2016 - 2017) -# René Fritze (2016 - 2018) -# Tobias Leibner (2016) -# ~~~ - -# THIS FILE IS AUTOGENERATED -- DO NOT EDIT # -# Re-run .ci/templates/update.py --nd instead # - -sudo: true -dist: trusty -language: generic -services: docker - -before_script: - - export MY_MODULE=dune-xt-la - - export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_BRANCH/\//_}" - - export IMAGE="dunecommunity/ci_${MY_MODULE}-testing_${DOCKER_TAG}:${TRAVIS_COMMIT}" - # get image with fallback to master branch of the super repo - - docker pull dunecommunity/${BASEIMAGE} || export BASEIMAGE="${MY_MODULE}-testing_${DOCKER_TAG}:master" ; docker pull dunecommunity/${BASEIMAGE} - - docker build --build-arg BASE=${BASEIMAGE} -t ${IMAGE} -f .ci/docker/Dockerfile . - - - export ENV_FILE=${HOME}/env - - python3 ./.travis.make_env_file.py - - docker inspect ${IMAGE} - - export DOCKER_RUN="docker run --env-file ${ENV_FILE} ${IMAGE}" - -script: - - ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.script.bash - -# runs independent of 'script' failure/success -after_script: - - ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.after_script.bash - # output for simpler replicability - - docker images ${IMAGE} - - echo ${DOCKER_RUN} - -after_failure: - - echo $DOCKER_PW | docker login --username="$DOCKER_USER" --password-stdin - - docker push ${IMAGE} - - echo "execute\n ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.script.bash\n to examine errors" - -notifications: - email: - on_success: change - on_failure: change - -branches: - except: - - gh-pages - -stages: - - Test C++ - - Test Python Bindings - -jobs: - include: - - stage: test_cpp - env: DOCKER_TAG=debian-unstable_gcc_full TESTS=0 - - stage: test_cpp - env: DOCKER_TAG=debian-unstable_gcc_full TESTS=1 - - - stage: test_cpp - env: DOCKER_TAG=debian_gcc_full TESTS=0 - - stage: test_cpp - env: DOCKER_TAG=debian_gcc_full TESTS=1 - - - stage: test_cpp - env: DOCKER_TAG=debian_clang_full TESTS=0 - - stage: test_cpp - env: DOCKER_TAG=debian_clang_full TESTS=1 - - - stage: test_python - env: DOCKER_TAG=debian-unstable_gcc_full - script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.test_python.bash - # overwrite other global/matrix settings - after_script: true - - stage: test_python - env: DOCKER_TAG=debian_gcc_full - script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.test_python.bash - # overwrite other global/matrix settings - after_script: true - - stage: test_python - env: DOCKER_TAG=debian_clang_full - script: ${DOCKER_RUN} /home/dune-ci/src/dune-xt-la/.travis.test_python.bash - # overwrite other global/matrix settings - after_script: true - -# THIS FILE IS AUTOGENERATED -- DO NOT EDIT # -# Re-run .ci/templates/update.py --nd instead # \ No newline at end of file