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