name: Main on: push: branches: - main pull_request: types: [opened, synchronize, reopened, ready_for_review] jobs: quality: runs-on: ubuntu-latest steps: - name: Check out uses: actions/checkout@v4 - uses: actions/cache@v4 with: path: ~/.cache/pre-commit key: pre-commit-${{ hashFiles('.pre-commit-config.yaml') }} - name: Set up the environment uses: ./.github/actions/setup-uv-env - name: Run checks run: make check test: runs-on: ${{ matrix.os }} timeout-minutes: 25 strategy: matrix: os: [ubuntu-latest, windows-latest, macos-latest] python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] fail-fast: false steps: - name: Check out uses: actions/checkout@v4 - name: Set up the environment uses: ./.github/actions/setup-uv-env with: python-version: ${{ matrix.python-version }} - name: Test libs run: uv run pytest -W ignore -v libs/tests --cov=libs --cov-config=pyproject.toml --cov-report=xml - name: Upload coverage reports to Codecov with GitHub Action on Python 3.10 uses: codecov/codecov-action@v4.0.1 if: ${{ matrix.os == 'ubuntu-latest' && matrix.python-version == '3.10' }} with: token: ${{ secrets.CODECOV_TOKEN }}