|
# Python Code Quality Analysis |
|
name: pycqa |
|
on: |
|
workflow_dispatch: |
|
push: |
|
branches: [master] |
|
pull_request: |
|
branches: [master] |
|
jobs: |
|
tooling: |
|
runs-on: ubuntu-latest |
|
env: |
|
PIP_DISABLE_PIP_VERSION_CHECK: 1 |
|
steps: |
|
# checkout repository |
|
- name: Checkout repository |
|
uses: actions/checkout@v6 |
|
# set up specific python version |
|
- name: Set up Python v3.10 |
|
uses: actions/setup-python@v6 |
|
with: |
|
python-version: "3.10" |
|
# tooling |
|
- name: Install 'tooling' dependencies |
|
run: pip install -r package/requirements.tooling.txt |
|
- name: Tooling |
|
run: | |
|
ruff format . |
|
ruff check . |
|
pyright . |
|
testing: |
|
strategy: |
|
fail-fast: true |
|
matrix: |
|
os: [ubuntu-latest] |
|
python-version: ["3.10", "3.11", "3.12", "3.13", "3.14"] |
|
runs-on: ${{ matrix.os }} |
|
steps: |
|
# checkout repository again! |
|
# ref: https://github.com/actions/checkout/issues/19 |
|
- name: Checkout repository |
|
uses: actions/checkout@v4 |
|
# set up specific python version |
|
- name: Set up Python v${{ matrix.python-version }} |
|
uses: actions/setup-python@v5 |
|
with: |
|
python-version: ${{ matrix.python-version }} |
|
cache: "pip" |
|
# testing |
|
- name: Install 'testing' dependencies |
|
run: | |
|
pip install -r package/requirements.testing.txt |
|
pip install . |
|
- name: Testing |
|
run: pytest . |