name: Scheduled Checks

on:
  schedule:
    # Every monday at 7 AM
    - cron: 0 7 * * 1

jobs:
  update:
    runs-on: ubuntu-latest
    permissions:
      contents: write
      pull-requests: write
    steps:
      - name: Checkout 🛎
        uses: actions/checkout@v4

      - name: Setup Python
        uses: actions/setup-python@v5
        with:
          python-version: "3.10"

      - name: Set PY
        shell: bash
        run: echo "PY=$(python -VV | sha256sum | cut -d' ' -f1)" >> $GITHUB_ENV

      - name: Cache
        uses: actions/cache@v4
        with:
          path: |
            ~/.cache/pre-commit
            ~/.cache/pip
          key: pre-commit-${{ env.PY }}-${{ hashFiles('.pre-commit-config.yaml') }}

      - name: Install pre-commit
        shell: bash
        run: pip install -U pre-commit

      - name: Run `pre-commit autoupdate`
        shell: bash
        run: pre-commit autoupdate --color=always

      - name: Create Pull Request
        uses: peter-evans/create-pull-request@v6
        # This doesn't currently work for us because it creates the PR but the workflows don't run.
        # TODO: Provide a personal access token as a parameter here, that solves that problem.
        # https://github.com/peter-evans/create-pull-request
        with:
          commit-message: "Update pre-commit hooks"
          branch: "fix/update-pre-commit-hooks"
          labels: |
            chore
          delete-branch: true
          base: mealie-next
          title: "chore(auto): Update pre-commit hooks"
          body: "Auto-generated by `.github/workflows/scheduled-checks.yml`"
