name: Tests
on: [push, pull_request]
jobs:
  build:
    strategy:
      fail-fast: false
      matrix:
        operating-system: [ubuntu-latest]
        php-versions: ["7.4", "8.0", "8.1", "8.2"]
        dependency-versions: ["highest", "lowest"]
    runs-on: ${{ matrix.operating-system }}
    steps:
      - name: Checkout code
        uses: actions/checkout@v2
      - name: Setup PHP and extensions
        uses: shivammathur/setup-php@v2
        with:
          php-version: ${{ matrix.php-versions }}
          extensions: gmp
          coverage: xdebug
          #coverage: pcov
      - name: Install Composer dependencies
        uses: ramsey/composer-install@v2
        with:
          dependency-versions: ${{ matrix.dependency-versions }}
      - name: Run linter
        run: make lint
      - name: Run unit tests
        run: make unit
      - name: Run static analysis
        run: make static
      - name: Upload coverage
        uses: codecov/codecov-action@v1
