Skip to content

Feat/tox python 3.14 (#240) #816

Feat/tox python 3.14 (#240)

Feat/tox python 3.14 (#240) #816

Workflow file for this run

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