continuous-integration.yml 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. name: "Continuous Integration"
  2. on:
  3. - push
  4. - pull_request
  5. env:
  6. COMPOSER_FLAGS: "--ansi --no-interaction --no-progress --prefer-dist"
  7. jobs:
  8. tests:
  9. name: "CI"
  10. runs-on: ubuntu-latest
  11. strategy:
  12. matrix:
  13. php-version:
  14. - "7.2"
  15. - "7.3"
  16. - "7.4"
  17. - "8.0"
  18. # disabled for now as phpspec/prophecy does not allow 8.1
  19. # - "8.1"
  20. dependencies: [highest]
  21. include:
  22. - php-version: "7.2"
  23. dependencies: lowest
  24. - php-version: "8.0"
  25. dependencies: lowest
  26. steps:
  27. - name: "Checkout"
  28. uses: "actions/checkout@v2"
  29. - name: "Install PHP"
  30. uses: "shivammathur/setup-php@v2"
  31. with:
  32. coverage: "none"
  33. php-version: "${{ matrix.php-version }}"
  34. extensions: mongodb, redis, amqp
  35. - name: Get composer cache directory
  36. id: composercache
  37. run: echo "::set-output name=dir::$(composer config cache-files-dir)"
  38. - name: Cache dependencies
  39. uses: actions/cache@v2
  40. with:
  41. path: ${{ steps.composercache.outputs.dir }}
  42. key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
  43. restore-keys: ${{ runner.os }}-composer-
  44. - name: Add require for mongodb/mongodb to make tests runnable
  45. run: 'composer require ${{ env.COMPOSER_FLAGS }} mongodb/mongodb --dev --no-update'
  46. - name: "Handle lowest dependencies update"
  47. if: "contains(matrix.dependencies, 'lowest')"
  48. run: "echo \"COMPOSER_FLAGS=$COMPOSER_FLAGS --prefer-lowest\" >> $GITHUB_ENV"
  49. - name: "Install latest dependencies"
  50. run: |
  51. composer update ${{ env.COMPOSER_FLAGS }}
  52. - name: "Run tests"
  53. run: "composer exec phpunit -- --verbose"
  54. - name: "Run tests with psr/log 3"
  55. if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'"
  56. run: |
  57. composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar
  58. composer require --no-update psr/log:^3
  59. composer update -W ${{ env.COMPOSER_FLAGS }}
  60. composer exec phpunit -- --verbose