name: Unit Tests

on: [push, pull_request]

jobs:
  run:
    name: PHP ${{ matrix.php-versions }} ${{ matrix.os }}
    runs-on: ${{ matrix.os }}
    if: github.event_name == 'push' || github.event.pull_request.head.repo.full_name != github.repository

    strategy:
      matrix:
        php-versions: ['7.2', '7.3', '7.4', '8.0']
        os: ['ubuntu-latest', 'windows-latest']
      fail-fast: false

    steps:
      - name: Checkout
        uses: actions/checkout@v2

      - name: Setup PHP
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          extensions: bz2, zip

      - name: Setup problem matchers
        run: |
          echo ::add-matcher::${{ runner.tool_cache }}/php.json
          echo ::add-matcher::${{ runner.tool_cache }}/phpunit.json

      - name: Setup Dependencies
        run: |
          composer update
          composer install
      - name: Run PHPUnit
        run: |
          ./vendor/bin/phpunit --verbose
