name: "Static analysis code" on: push: branches: - master pull_request: env: COMPOSER_FLAGS: "--ansi --prefer-dist --no-interaction --no-progress" jobs: ## PHP linter linter: name: "Check syntax errors" runs-on: ubuntu-latest strategy: matrix: php-version: - "7.2" - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" - "8.3" steps: - name: "Checkout" uses: "actions/checkout@v3" - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: ${{ matrix.php-version }} - name: "Lint PHP files" run: find ./src -type f -name '*.php' -print0 | xargs -0 -L1 -P4 -- php -l -f ## PHPSTAN phpstan: name: "PHP Static Analysis" runs-on: ubuntu-latest strategy: matrix: php-version: - "7.2" - "7.3" - "7.4" - "8.0" - "8.1" - "8.2" - "8.3" steps: - name: "Cancel Previous Runs" uses: styfle/cancel-workflow-action@0.11.0 with: all_but_latest: true access_token: ${{ github.token }} - name: "Checkout" uses: "actions/checkout@v3" - name: "Install PHP" uses: "shivammathur/setup-php@v2" with: coverage: "none" php-version: ${{ matrix.php-version }} - name: "Setup github auth token for composer" run: composer config github-oauth.github.com ${{ github.token }} - name: "Get composer cache directory" id: composer-cache run: echo "::set-output name=dir::$(composer config cache-files-dir)" - name: "Cache Composer Directory" uses: actions/cache@v2 with: path: ${{ steps.composer-cache.outputs.dir }} key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }} restore-keys: ${{ runner.os }}-composer- - name: "Composer Install" run: | composer install ${{ env.COMPOSER_FLAGS }} rm composer.lock composer config platform.php ${{ matrix.php-version }} - name: Run phpstan run: composer phpstan