ci.yml 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970
  1. name: CI
  2. on:
  3. push:
  4. pull_request:
  5. permissions:
  6. contents: read
  7. jobs:
  8. check_composer:
  9. name: Check composer.json
  10. runs-on: ubuntu-latest
  11. steps:
  12. - uses: actions/checkout@v4
  13. - uses: shivammathur/setup-php@v2
  14. with:
  15. coverage: none
  16. php-version: '8.4'
  17. - run: composer validate --strict --no-check-lock
  18. phpstan:
  19. name: PHPStan
  20. runs-on: ubuntu-latest
  21. steps:
  22. - uses: actions/checkout@v4
  23. - uses: shivammathur/setup-php@v2
  24. with:
  25. coverage: none
  26. php-version: '7.4'
  27. - name: Install dependencies
  28. run: composer update --ansi --no-progress --prefer-dist --no-interaction
  29. - run: vendor/bin/phpstan analyze -l 5 src
  30. psalm:
  31. name: Psalm
  32. runs-on: ubuntu-latest
  33. steps:
  34. - uses: actions/checkout@v4
  35. - uses: shivammathur/setup-php@v2
  36. with:
  37. coverage: none
  38. php-version: '7.4'
  39. - name: Install dependencies
  40. run: composer update --ansi --no-progress --prefer-dist --no-interaction
  41. - run: vendor/bin/psalm
  42. tests:
  43. name: "Tests on PHP ${{ matrix.php }}"
  44. runs-on: ubuntu-latest
  45. strategy:
  46. fail-fast: false
  47. matrix:
  48. php: [ '7.2', '7.3', '7.4', '8.0', '8.1', '8.2', '8.3', '8.4' ]
  49. steps:
  50. - uses: actions/checkout@v4
  51. with:
  52. submodules: true
  53. - uses: shivammathur/setup-php@v2
  54. with:
  55. coverage: "none"
  56. php-version: "${{ matrix.php }}"
  57. - name: Install dependencies
  58. run: composer update --ansi --no-progress --prefer-dist --no-interaction
  59. - name: Run tests
  60. run: vendor/bin/phpunit --colors=always