name: pre-commit

on:
  pull_request:

jobs:
  pre-commit:
    runs-on: ubuntu-latest
    steps:
    - uses: actions/checkout@v2
      with:
          fetch-depth: 0
          ref: ${{ github.event.pull_request.head.sha }}

    - name: Find the changed files
      id: find-changed-files
      uses: tj-actions/changed-files@v35

    - name: List all changed files
      run: |
        for file in ${{ steps.find-changed-files.outputs.all_changed_files }}; do
          echo "$file was changed"
        done

    - uses: actions/setup-python@v3

    - name: Cache pre-commit hooks
      uses: actions/cache@v3
      with:
        path: ~/.cache/pre-commit
        key: ${{ runner.os }}-pre-commit-hooks

    - name: Set up pre-commit
      run: |
        pip install pre-commit
        pre-commit install

    - name: Run pre-commit on Changed Files
      id: precommit
      run: |
        for file in ${{ steps.find-changed-files.outputs.all_changed_files }}; do
          echo "======= running pre-commit on ${file} ======="
          pre-commit run --files $file
        done

    - name: Save PR number
      if: always()
      env:
        PR_NUMBER: ${{ github.event.number }}
      run: |
        mkdir -p ./pr
        echo $PR_NUMBER > ./pr/pr_number
    - uses: actions/upload-artifact@v3
      if: always()
      with:
        name: pr_number
        path: pr/
