name: CI on: workflow_dispatch: pull_request: push: branches: - main jobs: pre-commit: name: Format + lint code runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-python@v4 with: python-version: "3.x" - uses: pre-commit/action@v3.0.0 with: extra_args: --hook-stage manual --all-files checks: name: Run tests for Python ${{ matrix.python-version }} on ${{ matrix.runs-on }} runs-on: ${{ matrix.runs-on }} needs: [pre-commit] strategy: fail-fast: false matrix: python-version: [3.10, 3.12] # test oldest and latest supported versions runs-on: [ubuntu-latest] # can be extended to other OSes, e.g. [ubuntu-latest, macos-latest] steps: - uses: actions/checkout@v4 with: fetch-depth: 0 - uses: actions/setup-python@v4 with: python-version: ${{ matrix.python-version }} allow-prereleases: true - name: Install package run: python -m pip install .[test] - name: Test package run: >- python -m pytest -ra --cov --cov-report=xml --cov-report=term --durations=20 - name: Upload coverage report uses: codecov/codecov-action@v3.1.4