48 lines
1.3 KiB
YAML
48 lines
1.3 KiB
YAML
name: Python Code Quality
|
|
on: [push]
|
|
jobs:
|
|
lock_file:
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uv lock --locked
|
|
linting:
|
|
runs-on: ubuntu-latest
|
|
needs: [lock_file]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uvx ruff check .
|
|
formatting:
|
|
runs-on: ubuntu-latest
|
|
needs: [lock_file]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uvx ruff format --check .
|
|
type_consistency:
|
|
runs-on: ubuntu-latest
|
|
needs: [lock_file]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uv run pyright .
|
|
tests:
|
|
runs-on: ubuntu-latest
|
|
needs: [lock_file]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uv run pytest -v --durations=0 --cov --cov-report=xml
|
|
- name: Upload Coverage to Codecov
|
|
uses: codecov/codecov-action@v4
|
|
with:
|
|
token: ${{ secrets.CODECOV_TOKEN }}
|
|
build:
|
|
runs-on: [ubuntu-latest]
|
|
needs: [linting, formatting, type_consistency, tests]
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
- uses: ./.github/actions/setup
|
|
- run: uv build |