| name: CI
on: [push]
jobs:
  ci:
    runs-on: [ubuntu-latest]
    strategy:
      matrix:
        php: [7.3, 7.4]
    steps:
      - uses: actions/checkout@v1
      - name: Install Composer dependencies
        run: composer install --prefer-dist
      - name: Linter
        run: php${{ matrix.php }} ./vendor/bin/parallel-lint --exclude vendor .
      - name: Code sniffer
        if: ${{ matrix.php == 7.3 }}
        run: php${{ matrix.php }} ./vendor/bin/phpcs --standard=./ruleset.xml --extensions=php
      - name: Psalm
        run: php${{ matrix.php }} ./vendor/bin/psalm
      - name: PHPUnit
        run: php${{ matrix.php }} ./vendor/bin/phpunit --coverage-clover=var/coverage.xml
      - name: Upload coverage to Codecov
        uses: codecov/codecov-action@v1
        with:
          token: ${{ secrets.CODECOV_TOKEN }}
          file: ./var/coverage.xml
          fail_ci_if_error: true
 |