diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..45e8604 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,72 @@ +stages: + - lint + - test + +.venv-job: + before_script: + - uv venv -p 3.12 --clear .venv + - source .venv/bin/activate + - uv pip install -r requirements-dev.txt + cache: + paths: + - .venv + +# TODO: this is still fictional, but an example of how to prep a docker job in GitLab +.docker-job: + tags: + - docker + before_script: + - docker compose build + - docker compose down --remove-orphans --volumes # Ensures empty database always created with .env DB_PASSWORD + - docker compose run postgres bash -c "bin/restore-test-database.sh" + +# ----------------------------------------------------------------- +# Run some basic linting in parallel + +lint:flakes: + stage: lint + only: + - pushes + extends: .venv-job + script: + - uv pip install flake8 + - flake8 $(git ls-files|grep py$) + + +# lint:ruff: +# stage: lint +# only: +# - pushes +# extends: .venv-job +# script: +# - ruff check +# +# lint:gitleaks: +# stage: lint +# only: +# - pushes +# extends: .venv-job +# script: +# - gitleaks git + +test:test: + stage: test + only: + - pushes + extends: .venv-job + variables: + PYTHONDONTWRITEBYTECODE: 1 + PYTHONUNBUFFERED: 1 + script: + - tox + coverage: '/TOTAL.*? (100(?:\.0+)?\%|[1-9]?\d(?:\.\d+)?\%)$/' + artifacts: + when: always + paths: + - junit.xml + - coverage.xml + reports: + junit: junit.xml + coverage_report: + coverage_format: cobertura + path: coverage.xml diff --git a/docs/source/conf.py b/docs/source/conf.py index 270dde4..fbd7952 100644 --- a/docs/source/conf.py +++ b/docs/source/conf.py @@ -5,7 +5,7 @@ For the full list of built-in configuration values, see the """ import sys -import sphinx_rtd_theme +# import sphinx_rtd_theme from pathlib import Path diff --git a/tox.ini b/tox.ini index e286263..0ae07c3 100644 --- a/tox.ini +++ b/tox.ini @@ -1,5 +1,5 @@ [tox] -envlist = py38,py310 +envlist = py312 skipsdist = True skip_missing_interpreters = True