stages: - test - deploy # -------------------------- Tests ------------------------------------------------------------------------------------ # Normal test - runs on every commit all but "long run" tests tests-and-coverage: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - env - pip list - export NUM_CORES=$(nproc --all) - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - mkdir public - pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - env - pip list - py.test -v -n $NUM_CORES --cov-report html --cov-report term --cov=. -m "not longrun" tags: - docker - cuda11 - AVX artifacts: when: always paths: - coverage_report # Nightly test - runs "long run" jobs only test-longrun: stage: test only: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - env - pip list - export NUM_CORES=$(nproc --all) - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - py.test -v -n $NUM_CORES --cov-report html --cov-report term --cov=. tags: - docker - cuda11 - AVX artifacts: paths: - coverage_report # Minimal tests in windows environment minimal-windows: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS tags: - win script: - source /cygdrive/c/Users/build/Miniconda3/Scripts/activate - source activate pystencils_dev - env - conda env list - pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - python -c "import numpy" - python setup.py quicktest ubuntu: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/ubuntu script: - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - pip3 install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - env - pip3 list - pytest-3 -v -m "not longrun" tags: - docker - cuda11 minimal-conda: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/minimal_conda script: - pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - python setup.py quicktest tags: - docker pycodegen-integration: image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full stage: test when: manual allow_failure: true script: - env - pip list - git clone https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pycodegen.git - cd pycodegen - git submodule sync --recursive - git submodule update --init --recursive - git submodule foreach git fetch origin # compare the latest master version! - git submodule foreach git reset --hard origin/master - cd lbmpy - git remote add test $CI_REPOSITORY_URL - git fetch test - git reset --hard $CI_COMMIT_SHA - cd .. - pip install -e pystencils/ - pip install -e lbmpy/ - ./install_walberla.sh # build all integration tests - cd walberla/build/ - make -j $NUM_CORES MicroBenchmarkGpuLbm LbCodeGenerationExample - cd apps/benchmarks/UniformGridGPU - make -j $NUM_CORES - cd ../UniformGridGenerated - make -j $NUM_CORES tags: - docker - cuda11 - AVX # -------------------- Linter & Documentation -------------------------------------------------------------------------- flake8-lint: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - flake8 lbmpy tags: - docker - cuda11 build-documentation: stage: test image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - export PYTHONPATH=`pwd` - pip install git+https://gitlab-ci-token:${CI_JOB_TOKEN}@i10git.cs.fau.de/pycodegen/pystencils.git@master#egg=pystencils - mkdir html_doc - sphinx-build -b html doc html_doc - sphinx-build -W -b html doc html_doc tags: - docker - cuda11 artifacts: paths: - html_doc pages: image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full stage: deploy script: - ls -l - mv coverage_report html_doc - mv html_doc public # folder has to be named "public" for gitlab to publish it artifacts: paths: - public tags: - docker only: - master@pycodegen/lbmpy