Python application #1529
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This workflow will install Python dependencies, run tests and lint using uv | |
| # For more information see: https://help.github.com/actions/language-and-framework-guides/using-python-with-github-actions | |
| name: Python application | |
| on: | |
| push: | |
| branches: | |
| - master | |
| pull_request: | |
| schedule: | |
| - cron: '0 12 * * *' | |
| jobs: | |
| test: | |
| name: Run tests on Python ${{ matrix.python-version }} | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| include: | |
| - python-version: "3.10" | |
| os: ubuntu-latest | |
| - python-version: "3.11" | |
| os: ubuntu-latest | |
| - python-version: "3.12" | |
| os: ubuntu-latest | |
| - python-version: "3.13" | |
| os: ubuntu-latest | |
| - python-version: "3.14" | |
| os: ubuntu-latest | |
| # Test on additional platforms for Python 3.11 | |
| - python-version: "3.11" | |
| os: macos-latest | |
| - python-version: "3.11" | |
| os: windows-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Setup uv | |
| uses: astral-sh/setup-uv@v5 | |
| with: | |
| enable-cache: true | |
| python-version: ${{ matrix.python-version }} | |
| - name: Install dependencies and run tests | |
| run: uv run --group dev pytest tests/ | |
| - name: Run lint (Python 3.11 only) | |
| if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' | |
| run: uv run --group dev ruff check sqlparse/ | |
| - name: Generate coverage report (Python 3.11 only) | |
| if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' | |
| run: | | |
| uv run --group dev coverage run -m pytest tests/ | |
| uv run --group dev coverage combine | |
| uv run --group dev coverage xml | |
| - name: Publish to codecov | |
| if: matrix.python-version == '3.11' && matrix.os == 'ubuntu-latest' | |
| uses: codecov/codecov-action@v4 |