image: python:3.8-bullseye test:bandit: script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt --quiet - pip install bandit --quiet - bandit -r app test:docs: stage: test script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt - pip install -U sphinx sphinx-press-theme sphinx-jsonschema - pushd scripts && python update_schemas.py && popd - pushd docs && sphinx-build -b html . ../public && popd rules: - if: $CI_COMMIT_REF_NAME != $CI_DEFAULT_BRANCH test:flake8: script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt --quiet - pip install flake8 --quiet - flake8 app test:mypy: script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt --quiet - pip install -r requirements-types.txt --quiet - mypy app test:nose: script: - apt update && apt install build-essential - pip install -r requirements.txt --quiet - pip install nose - nosetests tests test:pylint: script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt --quiet - pip install pylint --quiet - pylint app allow_failure: true pages: stage: deploy script: - cp config.yaml.example config.yaml - apt update && apt install build-essential - pip install -r requirements.txt - pip install -U sphinx sphinx-press-theme sphinx-jsonschema - pushd scripts && python update_schemas.py && popd - pushd docs && sphinx-build -b html . ../public && popd artifacts: paths: - public rules: - if: $CI_COMMIT_REF_NAME == $CI_DEFAULT_BRANCH