name: Pre-commit check

on:
  push:
    branches-ignore:
    - renovate/**
  pull_request:

permissions:
  contents: read

jobs:
  pre-commit:
    runs-on: ubuntu-latest

    steps:
    - uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
      with:
        persist-credentials: false
    - uses: actions/cache@cdf6c1fa76f9f475f3d7449005a359c84ca0f306 # v5.0.3
      with:
        path: ~/.cache/prek
        key: ${{ runner.os }}-prek-${{ hashFiles('.pre-commit-config.yaml') }}
        restore-keys: |
          ${{ runner.os }}-prek-
    - uses: astral-sh/setup-uv@5a095e7a2014a4212f075830d4f7277575a9d098 # v7.3.1
    - uses: actions/setup-python@a309ff8b426b58ec0e2a45f0f869d46889d02405 # v6.2.0
      with:
        python-version: 3.14
    - name: prek
      run: uv run --no-sources --only-group pre-commit prek run --all-files
      env:
        RUFF_OUTPUT_FORMAT: github
        REUSE_OUTPUT_FORMAT: github
    - name: diff
      run: git diff
      if: always()
    - name: prek-prune
      run: uv run --no-sources --only-group pre-commit prek cache gc
