Skip to content

Add python 3.13 to CI and pypi #225

Add python 3.13 to CI and pypi

Add python 3.13 to CI and pypi #225

Workflow file for this run

name: CI
on:
push:
branches: [main, 3.x.x]
paths:
- "**.py"
- "**.toml"
- "**.lock"
pull_request:
branches: [main, 3.x.x]
types: [opened, synchronize]
paths:
- "**.py"
- "**.toml"
- "**.lock"
- ".pre-commit-config.yaml"
jobs:
Tests:
strategy:
fail-fast: true
matrix:
include:
- os: ubuntu-latest
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: windows-latest
python-version: "3.10"
- os: macos-latest
python-version: "3.10"
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-python-uv
with:
python-version: ${{ matrix.python-version }}
- run: uv run coverage run --source=. --parallel-mode -m pytest tests
- name: Upload coverage results
uses: actions/upload-artifact@v3
if: matrix.os == 'ubuntu-latest' # Cross-platform coverage combination doesn't work
with:
name: main-tests-coverage-results
path: coverage/
Tutorial-tests:
runs-on: ubuntu-latest
name: Tutorial tests
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- name: Install cadwyn with instructions from docs
run: sh docs_src/quickstart/setup/block001.sh
- run: pip install pytest coverage dirty-equals
- run: coverage run --source=. --parallel-mode -m pytest docs_src
- name: Upload coverage results
uses: actions/upload-artifact@v3
with:
name: docs-tests-coverage-results
path: coverage/
Coverage:
needs: [Tests, Tutorial-tests]
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Download main tests coverage info
uses: actions/download-artifact@v3
with:
name: main-tests-coverage-results
path: coverage/
- name: Download docs tests coverage info
uses: actions/download-artifact@v3
with:
name: docs-tests-coverage-results
path: coverage/
- uses: actions/setup-python@v5
with:
python-version: "3.10"
- run: pip install 'coverage[toml]'
- run: coverage combine
- run: coverage xml
- name: Upload to Codecov
uses: codecov/codecov-action@v4
env:
fail_ci_if_error: true
CODECOV_TOKEN: ${{ secrets.CODECOV_TOKEN }}
- run: coverage report --fail-under=100
Lint:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: pre-commit/[email protected]
Typecheck:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: ./.github/actions/setup-python-uv
- uses: jakebailey/pyright-action@v1
with:
pylance-version: latest-release