name: PHP Tests on: push: branches: - master - release/* pull_request: branches: - master jobs: lint: name: Static analysis for php ${{ matrix.php }} on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: php: ['7.2', '7.3', '7.4', '8.0', '8.1'] os: ['ubuntu-latest'] steps: - name: Checkout code base uses: actions/checkout@v2 - name: Setup PHP uses: shivammathur/setup-php@v2 with: php-version: ${{ matrix.php }} tools: phpcs # The cleanup is required because otherwise the tests fail on PHP 8+. # Some of our deps are not officially compatible with that but will # pass the lint tests. Removing composer.json and composer.lock first # ensures that the test dep setup succeeds. Not removing vendor, but # only renaming it ensures the files are scanned still. - name: Cleanup run: rm composer.* && mv vendor real-vendor - name: Setup dependencies run: composer require -n --no-progress overtrue/phplint - name: PHP Lint if: success() || matrix.allow_failure run: ./vendor/bin/phplint -n --exclude={^vendor/.*} -- . - name: PHP CodeSniffer if: success() || matrix.allow_failure run: phpcs