name: Auto Maintenance Cycle

on:
  push:
    paths:
    - .gitea/workflows/maintenance.yaml
  schedule:
  - cron: '@weekly'
  workflow_dispatch:

jobs:
  auto-update:
    name: pre-commit Autoupdate
    runs-on: pi64
    env:
      SPECIFIC_BRANCH: chore/update-pre-commit
    steps:
    - uses: actions/checkout@v4
      with:
        ref: main
        token: ${{ secrets.REPO_TOKEN }}
    - name: Attempt to checkout specific branch
      uses: actions/checkout@v4
      with:
        ref: ${{ env.SPECIFIC_BRANCH }}
        token: ${{ secrets.REPO_TOKEN }}
      continue-on-error: true
    - uses: actions/setup-python@v4
    - run: pip install pre-commit
      shell: bash
    - run: pre-commit autoupdate
      shell: bash
    - name: Test pre-commit
      run: SKIP=no-commit-to-branch pre-commit run -a
    - name: Commit
      id: auto-commit-action
      uses: stefanzweifel/git-auto-commit-action@v5
      with:
        commit_message: 'chore: update pre-commit hooks'
        branch: ${{ env.SPECIFIC_BRANCH }}
        create_branch: true
    - name: Generate Date
      run: echo "CURRENT_DATE=$(date +'%Y-%m-%d')" >> $GITHUB_ENV
    - name: Create an PR action
      if: steps.auto-commit-action.outputs.changes_detected == 'true'
      uses: https://git.horstenkamp.eu/Philipp/gitea-act-create-pr@main
      with:
        token: ${{ secrets.REPO_TOKEN }}
        branch: ${{ env.SPECIFIC_BRANCH }}
        title: Updates to the pre-commit action created at ${{ env.CURRENT_DATE }}
        body: Update to the pre-commit action.
        assignees: Philipp
        reviewers: Philipp
