image: debian/bookworm
sources:
  - https://git.sr.ht/~cedric/stegano
packages:
  - python3
  - python3-dev
  - python3-pip
  - python3-setuptools
  - python3-venv
  - pipx
  - rustc
  - cargo
  - libffi-dev
  - libssl-dev
  - libjpeg-dev
  - libpng-dev
  - libfreetype6-dev
  - ffmpeg
  - libsm6
  - libxext6
environment:
  project: stegano
tasks:
  - dependencies: |
      pipx install poetry
      export PATH="$PATH:/home/build/.local/bin"
      cd ${project}
      poetry install
  - lint: |
      export PATH="$PATH:/home/build/.local/bin"
      cd ${project}
      # stop the build if there are Python syntax errors or undefined names
      poetry run flake8 stegano --count --select=E9,F63,F7,F82 --show-source --statistics
      # exit-zero treats all errors as warnings.
      poetry run flake8 stegano --count --max-complexity=10 --max-line-length=127 --statistics
  - test: |
      export PATH="$PATH:/home/build/.local/bin"
      cd ${project}
      poetry run nose2 -v --pretty-assert
  - typecheck: |
      export PATH="$PATH:/home/build/.local/bin"
      cd ${project}
      poetry run mypy .
