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: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: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
    
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

