name: Code Coverage

on:
  push:
    branches:
      - main

jobs:
  coverage:
    runs-on: ubuntu-latest

    name: Publish code coverage

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

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: 7.4
          extensions: dom, curl, libxml, mbstring, zip, pcntl, bcmath, intl, iconv
          coverage: pcov

      - name: Cache dependencies
        uses: actions/cache@v2
        with:
          path: |
            vendor
            ${{ steps.composer-cache-files-dir.outputs.dir }}
          key: ${{ runner.os }}-composer-${{ hashFiles('composer.json') }}
          restore-keys: |
            ${{ runner.os }}-composer-

      - name: Install dependencies
        env:
          COMPOSER_DISCARD_CHANGES: true
        run: composer require --no-suggest --no-progress --no-interaction --prefer-dist --update-with-all-dependencies "laravel/framework:^8.0" "orchestra/testbench:^6.0"

      - name: Run and publish code coverage
        uses: paambaati/codeclimate-action@v2.4.0
        env:
          CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }}
        with:
          coverageCommand: vendor/bin/phpunit --coverage-clover ${{ github.workspace }}/clover.xml
          debug: true
          coverageLocations:
            "${{github.workspace}}/clover.xml:clover"
