From d48de6f2522d903cf6d0d973c4e98407493011fe Mon Sep 17 00:00:00 2001 From: Tobias Leibner <tobias.leibner@googlemail.com> Date: Wed, 24 Nov 2021 12:51:48 +0100 Subject: [PATCH] [ci] Share config with dune-xt --- .ci/gitlab/config.yml | 14 +-- .ci/gitlab/config_template.py | 165 +--------------------------------- .ci/shared | 2 +- 3 files changed, 12 insertions(+), 169 deletions(-) diff --git a/.ci/gitlab/config.yml b/.ci/gitlab/config.yml index c1036c908..b274c40ba 100644 --- a/.ci/gitlab/config.yml +++ b/.ci/gitlab/config.yml @@ -11,12 +11,12 @@ variables: GIT_SUBMODULE_STRATEGY: recursive TRAVIS_BRANCH: ${CI_COMMIT_REF_NAME} TRAVIS_COMMIT: ${CI_COMMIT_SHA} - MY_MODULE: dune-gdt CCACHE_BASEDIR: ${CI_PROJECT_DIR} CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache" CCACHE_COMPILERCHECK: content CCACHE_COMPRESS: "true" PYTEST_ADDOPTS: "-s" + MY_MODULE: dune-gdt BASE_PROJECT: zivgitlab.wwu.io/ag-ohlberger/dune-community/dune-gdt-super .image_builder: @@ -131,7 +131,7 @@ debian_clang_full: -unstable_gcc_full cpp: +gdt unstable_gcc_full cpp: extends: .subdir-test variables: CI_IMAGE: debian-unstable_gcc_full @@ -143,7 +143,7 @@ unstable_gcc_full cpp: script: - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_cpp.bash -unstable_gcc_full headercheck: +gdt unstable_gcc_full headercheck: extends: .subdir-test variables: CI_IMAGE: debian-unstable_gcc_full @@ -155,7 +155,7 @@ unstable_gcc_full headercheck: script: - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_headercheck.bash -gcc_full cpp: +gdt gcc_full cpp: extends: .subdir-test variables: CI_IMAGE: debian_gcc_full @@ -167,7 +167,7 @@ gcc_full cpp: script: - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_cpp.bash -gcc_full headercheck: +gdt gcc_full headercheck: extends: .subdir-test variables: CI_IMAGE: debian_gcc_full @@ -179,7 +179,7 @@ gcc_full headercheck: script: - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_headercheck.bash -clang_full cpp: +gdt clang_full cpp: extends: .subdir-test variables: CI_IMAGE: debian_clang_full @@ -191,7 +191,7 @@ clang_full cpp: script: - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_cpp.bash -clang_full headercheck: +gdt clang_full headercheck: extends: .subdir-test variables: CI_IMAGE: debian_clang_full diff --git a/.ci/gitlab/config_template.py b/.ci/gitlab/config_template.py index 61777515a..e192dc13c 100755 --- a/.ci/gitlab/config_template.py +++ b/.ci/gitlab/config_template.py @@ -4,171 +4,14 @@ import os import jinja2 from itertools import product +import urllib.request -tpl = r'''# THIS FILE IS AUTOGENERATED -- DO NOT EDIT # -# Edit and Re-run .ci/gitlab/config_template.py instead # -stages: - - sanity - - images -{%- for kind in kinds %} - - {{kind}} -{%- endfor %} - - python - -variables: - GIT_SUBMODULE_STRATEGY: recursive - TRAVIS_BRANCH: ${CI_COMMIT_REF_NAME} - TRAVIS_COMMIT: ${CI_COMMIT_SHA} - MY_MODULE: dune-gdt - CCACHE_BASEDIR: ${CI_PROJECT_DIR} - CCACHE_DIR: "${CI_PROJECT_DIR}/.ccache" - CCACHE_COMPILERCHECK: content - CCACHE_COMPRESS: "true" - PYTEST_ADDOPTS: "-s" - BASE_PROJECT: zivgitlab.wwu.io/ag-ohlberger/dune-community/dune-gdt-super - -.image_builder: - tags: - - docker-in-docker - - long execution time - stage: images - rules: - - if: '$CI_COMMIT_REF_NAME =~ /^staging.*/' - when: never - - when: on_success - retry: - max: 2 - when: - - always - image: harbor.uni-muenster.de/proxy-docker/library/docker:19.03.12 - variables: - DOCKER_HOST: tcp://docker:2375/ - DOCKER_DRIVER: overlay2 - IMAGE: ${CI_REGISTRY_IMAGE}/ci_testing_${CI_IMAGE}:${CI_COMMIT_SHORT_SHA} - before_script: - - | - docker login -u $CI_REGISTRY_USER -p $CI_REGISTRY_PASSWORD $CI_REGISTRY - apk --update add py3-pip openssh-client rsync git file bash python3 curl - pip3 install -U docker jinja2 docopt - - export BASEIMAGE="${MY_MODULE}-testing_${CI_IMAGE}:${CI_COMMIT_REF_NAME/\//_}" - # get image with fallback to master branch of the super repo - docker pull ${BASE_PROJECT}/${BASEIMAGE} || export BASEIMAGE="${MY_MODULE}-testing_${CI_IMAGE}:master" - docker pull ${BASE_PROJECT}/${BASEIMAGE} - script: - - | - git submodule update --init --recursive - docker build --build-arg BASE=${BASEIMAGE} -t ${IMAGE} -f .ci/gitlab/Dockerfile . - docker push ${IMAGE} - services: - - name: harbor.uni-muenster.de/proxy-docker/library/docker:dind - alias: docker - environment: - name: unsafe - -.subdir-test: - tags: - - long execution time - stage: test - rules: - - if: '$CI_COMMIT_REF_NAME =~ /^staging.*/' - when: never - - when: on_success - retry: - max: 2 - when: - - always - image: ${CI_REGISTRY_IMAGE}/ci_testing_${CI_IMAGE}:${CI_COMMIT_SHORT_SHA} - cache: - key: "$CI_JOB_NAME" - paths: - - .ccache - before_script: - - | - mkdir /home/dune-ci/testresults && chmod -R 777 /home/dune-ci/testresults - [[ -f ./.gitsuper ]] && echo "Please remove .gitsuper from the repo" && exit 1 - ccache --zero-stats || true - after_script: - - ccache --show-stats - artifacts: - reports: - junit: '/home/dune-ci/testresults/*xml' - environment: - name: unsafe - -.pre-commit: - stage: sanity - image: "python:3.9" - cache: - paths: - - ${CI_PROJECT_DIR}/.cache/pre-commit - variables: - PRECOMMIT: "pre-commit run --all" - before_script: - - pip install pre-commit - - pre-commit install --install-hooks - -format_check: - extends: .pre-commit - script: - - ${PRECOMMIT} clang-format - - ${PRECOMMIT} yapf - - ${PRECOMMIT} trailing-whitespace - -lint: - extends: .pre-commit - script: - - ${PRECOMMIT} check-added-large-files - #- ${PRECOMMIT} flake8 disabled for now, finds lots of issue - - ${PRECOMMIT} debug-statements - - ${PRECOMMIT} check-yaml - - -{% for image in images -%} -{{ image }}: - extends: .image_builder - variables: - CI_IMAGE: {{ image }} -{% endfor %} - -{% for image, subdir, kind in matrix %} -{{ subdir }} {{ image[image.find('debian')+1+6:] }} {{kind}}: - extends: .subdir-test - variables: - CI_IMAGE: {{ image }} - TESTS_MODULE_SUBDIR: {{ subdir }} - tags: - - dustin - stage: {{kind}} - needs: ["{{image}}"] - script: - - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_{{kind}}.bash -{% endfor %} - -{% for image in images %} -{{ image[image.find('debian')+1+6:] }} python: - extends: .subdir-test - variables: - CI_IMAGE: {{ image }} - tags: - {%- if 'clang' in image %} - - amm-only - {%- else %} - - dustin - {%- endif %} - stage: python - needs: ["{{image}}"] - script: - - /home/dune-ci/src/${MY_MODULE}/.ci/shared/scripts/test_python.bash -{% endfor %} - -''' - - +template_url = 'https://raw.githubusercontent.com/dune-community/dune-xt-ci/master/xt_and_gdt_config_template.txt' +tpl = urllib.request.urlopen(template_url).read().decode('utf-8').replace('DUNE_XT_OR_DUNE_GDT', 'dune-gdt') tpl = jinja2.Template(tpl) images = ['debian-unstable_gcc_full', 'debian_gcc_full', 'debian_clang_full'] subdirs = ['gdt'] kinds = ['cpp', 'headercheck'] matrix = product(images, subdirs, kinds) with open(os.path.join(os.path.dirname(__file__), 'config.yml'), 'wt') as yml: - yml.write(tpl.render(matrix=matrix, images=images, kinds=kinds)) + yml.write(tpl.render(matrix=matrix, images=images, kinds=kinds, subdirs=subdirs)) diff --git a/.ci/shared b/.ci/shared index cf203b018..5ce72dd99 160000 --- a/.ci/shared +++ b/.ci/shared @@ -1 +1 @@ -Subproject commit cf203b018754316ebb9f943291b3c0775fe44b1e +Subproject commit 5ce72dd996365edfa6076024a90010dec25df3e4 -- GitLab