phpstan.yml 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. name: "PHPStan"
  2. on:
  3. - push
  4. - pull_request
  5. env:
  6. COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
  7. permissions:
  8. contents: read # to fetch code (actions/checkout)
  9. jobs:
  10. tests:
  11. name: "PHPStan"
  12. runs-on: ubuntu-latest
  13. strategy:
  14. matrix:
  15. php-version:
  16. - "8.0"
  17. steps:
  18. - name: "Checkout"
  19. uses: "actions/checkout@v4"
  20. - name: "Install PHP"
  21. uses: "shivammathur/setup-php@v2"
  22. with:
  23. coverage: "none"
  24. php-version: "${{ matrix.php-version }}"
  25. extensions: mongodb, redis, amqp
  26. - name: Get composer cache directory
  27. id: composercache
  28. run: echo "dir=$(composer config cache-files-dir)" >> "$GITHUB_OUTPUT"
  29. - name: Cache dependencies
  30. uses: actions/cache@v4
  31. with:
  32. path: ${{ steps.composercache.outputs.dir }}
  33. key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
  34. restore-keys: ${{ runner.os }}-composer-
  35. - name: Add require for mongodb/mongodb to make tests runnable
  36. run: "composer require ${{ env.COMPOSER_FLAGS }} mongodb/mongodb --dev --no-update"
  37. - name: "Install latest dependencies"
  38. # --ignore-platform-req=php here needed as long as elasticsearch/elasticsearch does not support php 8
  39. run: "composer update ${{ env.COMPOSER_FLAGS }} --ignore-platform-req=php"
  40. - name: Run PHPStan
  41. run: composer phpstan