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: - pip list - export NUM_CORES=$(nproc --all) - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - mkdir public - py.test -v -n $NUM_CORES --cov-report html --cov-report term --cov=. -m "not longrun" --html test-report/index.html tags: - docker - cuda - AVX artifacts: when: always paths: - coverage_report - test-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: - export NUM_CORES=$(nproc --all) - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - py.test -v -n $NUM_CORES --cov-report html --cov-report term --cov=. --html test-report/index.html tags: - docker - cuda - AVX artifacts: paths: - coverage_report - test-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 - 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 - sed -i 's/--doctest-modules //g' pytest.ini - pytest-3 -v -m "not longrun" tags: - docker - cuda - AVX minimal-conda: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/minimal_conda script: - python setup.py quicktest tags: - docker minimal-sympy-master: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/minimal_conda script: - python -m pip install --upgrade git+https://github.com/sympy/sympy.git - python setup.py quicktest allow_failure: true tags: - docker pycodegen-integration: image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full stage: test when: manual script: - 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 pystencils - 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/ - pip install -e pygrandchem/ - ./install_walberla.sh - export NUM_CORES=$(nproc --all) - mkdir -p ~/.config/matplotlib - echo "backend:template" > ~/.config/matplotlib/matplotlibrc - cd pystencils - py.test -v -n $NUM_CORES . - cd ../lbmpy - py.test -v -n $NUM_CORES . - cd ../pygrandchem - py.test -v -n $NUM_CORES . - cd ../walberla/build/ - make CodegenJacobiCPU CodegenJacobiGPU CodegenPoisson MicroBenchmarkGpuLbm LbCodeGenerationExample UniformGridBenchmarkGPU_trt UniformGridBenchmarkGPU_entropic_kbc_n4 - cd apps/benchmarks/UniformGridGPU - make -j $NUM_CORES - cd ../UniformGridGenerated - make -j $NUM_CORES tags: - docker - cuda - AVX # -------------------- Linter & Documentation -------------------------------------------------------------------------- flake8-lint: stage: test except: variables: - $ENABLE_NIGHTLY_BUILDS image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - flake8 pystencils tags: - docker - cuda build-documentation: stage: test image: i10git.cs.fau.de:5005/pycodegen/pycodegen/full script: - export PYTHONPATH=`pwd` - mkdir html_doc - sphinx-build -W -b html doc html_doc tags: - docker - cuda 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/pystencils