name: Lint (pyrefly + ruff) on: pull_request: paths: - "software/**" - ".github/workflows/**" workflow_dispatch: permissions: contents: read jobs: lint-formatting: runs-on: ubuntu-latest defaults: run: shell: bash working-directory: software steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v7 with: python-version: "3.13" cache: "pip" cache-dependency-path: | software/pyproject.toml software/uv.lock software/script/requirements.txt - name: Set up uv uses: astral-sh/setup-uv@v6 - name: Install dependencies with uv run: uv sync --dev - name: Ruff check run: uv run ruff check . lint-types: runs-on: ubuntu-latest defaults: run: shell: bash working-directory: software continue-on-error: true steps: - name: Checkout uses: actions/checkout@v7 with: persist-credentials: false - name: Set up Python uses: actions/setup-python@v7 with: python-version: "3.13" cache: "pip" cache-dependency-path: | software/pyproject.toml software/uv.lock software/script/requirements.txt - name: Set up uv uses: astral-sh/setup-uv@c771a70e6277c0a99b617c7a806ffedaca235ff9 # v9.0.0 - name: Install dependencies with uv run: uv sync --dev - name: Pyrefly check run: uv run pyrefly check