on: [push, pull_request] jobs: build: runs-on: ubuntu-latest strategy: matrix: python-version: [ '3.9', '3.10', '3.11', '3.12' ] name: Run tests in Python ${{ matrix.python-version }} steps: - name: Checkout repo uses: actions/checkout@v4 - name: Setup Python ${{ matrix.python-version }} uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} architecture: x64 - name: Install Poetry uses: snok/install-poetry@v1.3.0 with: virtualenvs-create: true virtualenvs-in-project: true installer-parallel: true - name: Install dependencies with Poetry run: poetry install --no-interaction --no-root - name: Check types with mypy run: | source .venv/bin/activate mypy . - name: Lint code with pylint and flake8 run: | source .venv/bin/activate pylint gutenberg2kindle tests flake8 --extend-exclude ".venv" - name: Run tests with pytest run: | source .venv/bin/activate pytest --cov=gutenberg2kindle --cov-fail-under=80 -vvv