Feat/tox python 3.14 #815
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
| name: Json2xml | |
| on: | |
| push: | |
| branches: [main, master] | |
| paths-ignore: | |
| - 'docs/**' | |
| - '*.md' | |
| - '*.rst' | |
| pull_request: | |
| paths-ignore: | |
| - 'docs/**' | |
| - '*.md' | |
| - '*.rst' | |
| permissions: | |
| contents: read | |
| checks: write # For test results | |
| pull-requests: write # For codecov | |
| concurrency: | |
| group: ${{ github.workflow }}-${{ github.ref }} | |
| cancel-in-progress: true | |
| jobs: | |
| test: | |
| runs-on: ${{ matrix.os }} | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| python-version: [pypy-3.10, pypy-3.11, '3.10', '3.11', '3.12', '3.13'] | |
| os: [ | |
| ubuntu-latest, | |
| windows-latest, | |
| macos-latest, | |
| ] | |
| include: | |
| # Add exact version 3.14.0-beta.1 for ubuntu-latest only | |
| - python-version: 3.14.0-beta.1 | |
| os: ubuntu-latest | |
| exclude: | |
| # Exclude other OSes with Python 3.14.0-beta.1 | |
| - python-version: 3.14.0-beta.1 | |
| os: windows-latest | |
| - python-version: 3.14.0-beta.1 | |
| os: macos-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python ${{ matrix.python-version }} | |
| uses: actions/setup-python@v5.2.0 | |
| with: | |
| python-version: ${{ matrix.python-version }} | |
| allow-prereleases: true | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| requirements*.txt | |
| requirements-dev.in | |
| pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| uv pip install --system -e . | |
| uv pip install --system pytest pytest-xdist pytest-cov | |
| - name: Create coverage directory | |
| run: mkdir -p coverage/reports | |
| - name: Run tests | |
| run: | | |
| pytest --cov=json2xml --cov-report=xml:coverage/reports/coverage.xml --cov-report=term -xvs tests -n auto | |
| env: | |
| PYTHONPATH: ${{ github.workspace }} | |
| - name: Upload coverage to Codecov | |
| uses: codecov/codecov-action@v5 | |
| if: success() | |
| with: | |
| directory: ./coverage/reports/ | |
| env_vars: OS,PYTHON | |
| fail_ci_if_error: false # Don't fail CI if codecov upload fails | |
| files: ./coverage/reports/coverage.xml | |
| flags: unittests | |
| token: ${{ secrets.CODECOV_TOKEN }} | |
| name: codecov-umbrella | |
| verbose: true | |
| env: | |
| OS: ${{ matrix.os }} | |
| PYTHON: ${{ matrix.python-version }} | |
| lint: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5.2.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| requirements*.txt | |
| requirements-dev.in | |
| pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| uv pip install --system -e . | |
| uv pip install --system ruff>=0.3.0 | |
| - name: Run ruff | |
| run: ruff check json2xml tests | |
| typecheck: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| with: | |
| persist-credentials: false | |
| - name: Set up Python 3.12 | |
| uses: actions/setup-python@v5.2.0 | |
| with: | |
| python-version: '3.12' | |
| - name: Install uv | |
| uses: astral-sh/setup-uv@v6 | |
| with: | |
| enable-cache: true | |
| cache-dependency-glob: | | |
| requirements*.txt | |
| requirements-dev.in | |
| pyproject.toml | |
| - name: Install dependencies | |
| run: | | |
| uv pip install --system -e . | |
| uv pip install --system mypy>=1.0.0 types-setuptools | |
| - name: Run mypy | |
| run: mypy json2xml tests | |