name: Re-run Workflow

on:
  workflow_run:
    workflows:
      - CI
    types:
      - completed
  pull_request_target:
    types:
      - closed
      - labeled
      - unlabeled
  schedule:
    - cron: '30 */3 * * *' # every 3 hours (30 minutes past the hour)

permissions:
  contents: read

jobs:
  rerun-workflow:
    if: >
      startsWith(github.repository, 'Homebrew/') &&
      (
        github.event.label.name == 'ci-requeue' ||
        github.event.label.name == 'ci-retry' ||
        github.event.label.name == 'ci-skip-appcast' ||
        github.event.label.name == 'ci-skip-install' ||
        github.event.label.name == 'ci-skip-homepage' ||
        github.event.label.name == 'ci-skip-livecheck' ||
        github.event.label.name == 'ci-skip-livecheck-min-os' ||
        github.event.label.name == 'ci-skip-repository' ||
        github.event.label.name == 'ci-syntax-only' ||
        !github.event.label.name
      )
    runs-on: ubuntu-latest
    steps:
      - name: Re-run CI workflow
        uses: reitermarkus/rerun-workflow@89b6d612733e2116cf83085372ed69fc1e529630
        with:
          token: ${{ secrets.HOMEBREW_GITHUB_PUBLIC_REPO_TOKEN }}
          once-label: ci-requeue
          continuous-label: ci-retry
          trigger-labels: ci-skip-appcast,ci-skip-install,ci-skip-homepage,ci-skip-livecheck,ci-syntax-only,ci-skip-repository,ci-skip-livecheck-min-os
          workflow: ci.yml
