name: "Backwards compatibility check"

on:
  pull_request:

jobs:
  bc-check:
    name: "Backwards compatibility check"

    runs-on: "ubuntu-latest"

    steps:
      - name: "Checkout"
        uses: "actions/checkout@v4"
        with:
          fetch-depth: 0

      - name: "Install PHP"
        uses: "shivammathur/setup-php@2.31.1"
        with:
          php-version: "8.2"
          ini-values: memory_limit=-1
          tools: composer:v2, cs2pr
        env:
          GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}

      - name: Get composer cache directory
        id: composer-cache
        run: echo "composer_cache_dir=$(composer global config cache-files-dir)" >> $GITHUB_OUTPUT

      - name: "Cache dependencies"
        uses: "actions/cache@v4.0.2"
        with:
          path: ${{ steps.composer-cache.outputs.composer_cache_dir }}
          key: "php-8.2-bc-break-check-${{ hashFiles('.github/workflows/backwards-compatibility.yml') }}"
          restore-keys: "php-8.2-bc-break-check-"

      - name: "Install dependencies"
        run: composer global require roave/backward-compatibility-check

      - name: "BC Check"
        run: |
          ~/.composer/vendor/bin/roave-backward-compatibility-check --from=${{ github.event.pull_request.base.sha }} --format=github-actions
