name: Cleanup GitHub Pages on Branch Deletion

on:
  delete

permissions:
  contents: write

concurrency:
  group: "pages"
  cancel-in-progress: false

jobs:
  cleanup:
    runs-on: ubuntu-latest
    steps:
      - name: Checkout repository
        uses: actions/checkout@v3.5.3

      - name: Delete directory in gh-pages
        if: github.event.ref_type == 'branch'
        run: |
          git config --global user.email "41898282+github-actions[bot]@users.noreply.github.com"
          git config --global user.name "github-actions[bot]"
          git fetch --all
          git checkout gh-pages
          branchName=$(echo "${{ github.event.ref }}" | sed -e 's,^refs/heads/,,')
          if [ -d "./${branchName}" ]; then
            git rm -rf --ignore-unmatch "${branchName}"
            git commit -m "Cleanup directory for deleted branch ${branchName}"
            git push origin gh-pages
          else
            echo "Directory doesn't exist for branch ${branchName}"
          fi