63 lines
1.5 KiB
YAML
63 lines
1.5 KiB
YAML
name: Python CI
|
|
|
|
concurrency:
|
|
group: python-${{ github.ref }}
|
|
cancel-in-progress: true
|
|
|
|
on:
|
|
workflow_dispatch:
|
|
push:
|
|
paths:
|
|
- '.github/workflows/python.yml'
|
|
- 'pyproject.toml'
|
|
- 'uv.lock'
|
|
- '.python-version'
|
|
- '**/*.py'
|
|
|
|
jobs:
|
|
ruff:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
- name: Set up UV
|
|
uses: actions/setup-uv@v1
|
|
- name: Run Ruff check
|
|
run: uv run ruff check --output-format=github
|
|
|
|
ruff-format-check:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
- name: Set up UV
|
|
uses: actions/setup-uv@v1
|
|
- name: Run Ruff format check
|
|
run: uv run ruff format --check --output-format=github
|
|
|
|
ty:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
- name: Set up UV
|
|
uses: actions/setup-uv@v1
|
|
- name: Run ty check
|
|
run: uv run ty check --output-format=github
|
|
|
|
coverage:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- name: Checkout repository
|
|
uses: actions/checkout@v5
|
|
- name: Set up UV
|
|
uses: actions/setup-uv@v1
|
|
- name: Run tests with coverage
|
|
run: uv run coverage run -m unittest -v
|
|
- name: Generate coverage XML report
|
|
run: uv run coverage xml
|
|
- name: Create coverage summary
|
|
uses: actions/code-coverage-summary@v1.3.0
|
|
with:
|
|
filename: coverage.xml
|