canaille-globuzma/.gitlab-ci.yml
2023-11-01 20:22:26 +01:00

85 lines
1.6 KiB
YAML

---
image: python
stages:
- test
- build
- release
before_script:
- apt update
- env DEBIAN_FRONTEND=noninteractive apt install --yes python3-dev libldap2-dev libsasl2-dev libssl-dev slapd ldap-utils python3-poetry
- poetry config virtualenvs.in-project true
cache:
paths:
- .venv
style:
image: python:3.12
stage: test
script:
- pip install pre-commit
- pre-commit run --all-files --show-diff-on-failure
python38:
image: python:3.8
stage: test
script:
- poetry install --extras all
- poetry run pytest
python39:
image: python:3.9
stage: test
script:
- poetry install --extras all
- poetry run pytest
python310:
image: python:3.10
stage: test
script:
- poetry install --extras all
- poetry run pytest
python311:
image: python:3.11
stage: test
script:
- poetry install --extras all
- poetry run pytest
python312:
image: python:3.12
stage: test
script:
- poetry install --extras all
- poetry run pytest
minversions:
image: python:3.8
stage: test
script:
- sed -i -E 's/"(\^|>=)([0-9\.]+)(.*)"/"==\2"/' pyproject.toml
- sed -i -E 's/python = "==/python = "^/' pyproject.toml
- poetry lock
- poetry install --extras all
- poetry run pytest
doc:
image: python:3.12
stage: test
script:
- poetry install --only doc
- poetry run sphinx-build doc build/sphinx/html
coverage:
image: python:3.12
stage: test
allow_failure: true
script:
- pip install coveralls pyyaml tomli
- poetry install --extras all
- poetry run pytest --cov --cov-fail-under=100 --cov-report term:skip-covered -n auto
- coveralls