86 lines
2.0 KiB
YAML
86 lines
2.0 KiB
YAML
name: "Python Checks: Lints & Docs"
|
|
|
|
on:
|
|
workflow_call:
|
|
inputs:
|
|
CONCURRENCY:
|
|
required: true
|
|
type: string
|
|
|
|
concurrency:
|
|
group: ${{ inputs.CONCURRENCY }}-checks_python
|
|
cancel-in-progress: true
|
|
|
|
env:
|
|
PYTHON_VERSION: "3.10"
|
|
|
|
defaults:
|
|
run:
|
|
shell: bash --noprofile --norc -euo pipefail {0}
|
|
|
|
permissions:
|
|
contents: "read"
|
|
id-token: "write"
|
|
|
|
jobs:
|
|
# ---------------------------------------------------------------------------
|
|
|
|
py-lints:
|
|
name: Python lints (ruff, mypy, …)
|
|
timeout-minutes: 60
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || '' }}
|
|
|
|
- uses: prefix-dev/setup-pixi@v0.10.0
|
|
with:
|
|
pixi-version: v0.71.3
|
|
|
|
- name: Python format check
|
|
run: pixi run py-fmt-check
|
|
|
|
- name: Lint Python
|
|
run: pixi run py-lint
|
|
|
|
- name: Notebook strip check
|
|
run: pixi run nb-strip-check
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
py-test-notebook:
|
|
name: Notebook widget unit tests
|
|
timeout-minutes: 10
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || '' }}
|
|
|
|
- uses: prefix-dev/setup-pixi@v0.10.0
|
|
with:
|
|
pixi-version: v0.71.3
|
|
|
|
- name: Run notebook tests
|
|
run: pixi run py-test-notebook
|
|
|
|
# ---------------------------------------------------------------------------
|
|
|
|
py-test-docs:
|
|
name: Test Python Docs
|
|
timeout-minutes: 60
|
|
runs-on: ubuntu-latest
|
|
steps:
|
|
- uses: actions/checkout@v4
|
|
with:
|
|
ref: ${{ github.event_name == 'pull_request' && github.event.pull_request.head.ref || '' }}
|
|
|
|
- uses: prefix-dev/setup-pixi@v0.10.0
|
|
with:
|
|
pixi-version: v0.71.3
|
|
|
|
- name: Build via mkdocs
|
|
run: |
|
|
pixi run uv run --group docs mkdocs build --strict -f rerun_py/mkdocs.yml
|