on: # yamllint disable-line rule:truthy
  pull_request: ~
  push:
    branches:
      - "main"
      - "[0-9].*"

name: "Code Coverage"

jobs:
  code-coverage:
    name: "Code Coverage"

    strategy:
      matrix:
        php-version:
          - "8.0"

    runs-on: "ubuntu-latest"

    steps:
      - name: "Checkout code"
        uses: "actions/checkout@v3"

      - name: "Install PHP with extensions"
        uses: "shivammathur/setup-php@v2"
        with:
          coverage: "xdebug"
          extensions: "intl"
          php-version: "${{ matrix.php-version }}"

      - name: "Determine composer cache directory"
        id: "composer-cache"
        run: "echo \"directory=$(composer config cache-dir)\" >> $GITHUB_OUTPUT"

      - name: "Cache dependencies installed with composer"
        uses: "actions/cache@v3"
        with:
          path: "${{ steps.composer-cache.outputs.directory }}"
          key: "composer-${{ matrix.php-version }}-${{ hashFiles('composer.*') }}"
          restore-keys: |
            composer-${{ matrix.php-version }}-
            composer-

      - name: "Download dependencies"
        run: |
          composer update --ansi --no-interaction --no-progress --optimize-autoloader

      - name: "Collect code coverage with PHPUnit"
        run: |
          vendor/bin/phpunit --colors=always --coverage-clover=.build/logs/clover.xml

      - name: "Send code coverage report to codecov.io"
        run: |
          bash <(curl -s https://codecov.io/bash)
