name: Warn before merging if a "freeze" or "do not merge" label exists

on:
  pull_request_target:
    types: [synchronize, opened, reopened, labeled, unlabeled]

jobs:
  freeze_warning:
    if: ${{ contains(github.event.*.labels.*.name, 'freeze') || contains(github.event.*.labels.*.name, 'do not merge') }}
    name: Warn before merging if a "freeze" or "do not merge" label exists
    runs-on: ubuntu-latest
    steps:
      - name: Check for "freeze" label
        run: |
          echo "Pull request is labeled as 'freeze' or 'do not merge'"
          echo "This workflow fails so that the pull request cannot be merged."
          exit 1