name: Continuous Integration

on: [push]

jobs:
    run:
        runs-on: ubuntu-latest
        strategy:
            matrix:
                php-versions: [
                    '7.1',
                    '7.2',
                    '7.3',
                    '7.4',
                    '8.0',
                    '8.1',
                ]
        name: PHP ${{ matrix.php-versions }}
        steps:
            -   uses: actions/checkout@v2

            -   name: Setup PHP
                uses: shivammathur/setup-php@v2
                with:
                    php-version: ${{ matrix.php-versions }}
                    coverage: none
                    tools: composer:v1

            -   name: Validate composer.json and composer.lock
                run: composer validate

            -   name: Install dependencies
                run: composer update --prefer-dist --no-progress --no-suggest

            -   name: Run PHPUnit
                run: vendor/bin/phpunit

            -   name: Psalm
                run: ./vendor/bin/psalm --show-info --threads=8 --diff

            -   name: PHPCS
                run: ./vendor/bin/phpcs -s --runtime-set ignore_warnings_on_exit 1
