name: Tests on: push: branches: ["**"] pull_request: branches: ["**"] jobs: test: strategy: matrix: os: [ubuntu-latest, macos-latest, windows-latest] python-version: ["3.10", "3.11", "3.12"] runs-on: ${{ matrix.os }} steps: - uses: actions/checkout@v4 - uses: actions/setup-python@v5 with: python-version: ${{ matrix.python-version }} - name: Install Poetry run: pipx install poetry - name: Install dependencies run: poetry install - name: Check formatting run: poetry run black --check . - name: Run security audit run: | poetry run pip-audit || echo "::warning::pip-audit found vulnerabilities" shell: bash - name: Run tests with coverage run: | poetry run coverage run -m pytest poetry run coverage xml - name: Upload coverage report uses: actions/upload-artifact@v4 with: name: coverage-${{ matrix.os }}-py${{ matrix.python-version }} path: coverage.xml