continuous-integration.yml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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: Remove elasticsearch/elasticsearch on PHP 8
  45. if: "startsWith(matrix.php-version, '8.')"
  46. run: 'composer remove elasticsearch/elasticsearch --dev --no-update'
  47. - name: Add require for mongodb/mongodb to make tests runnable
  48. run: 'composer require ${{ env.COMPOSER_FLAGS }} mongodb/mongodb --dev --no-update'
  49. - name: "Handle lowest dependencies update"
  50. if: "contains(matrix.dependencies, 'lowest')"
  51. run: "echo \"COMPOSER_FLAGS=$COMPOSER_FLAGS --prefer-lowest\" >> $GITHUB_ENV"
  52. - name: "Ensure psr/log v2 is installed"
  53. if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'"
  54. run: composer require -W psr/log:^2
  55. - name: "Install latest dependencies"
  56. run: |
  57. composer update ${{ env.COMPOSER_FLAGS }}
  58. - name: "Run tests"
  59. run: "composer exec phpunit -- --verbose"
  60. - name: "Run tests with rollbar"
  61. run: |
  62. composer require psr/log:'^1.1|^2' --no-update
  63. composer require rollbar/rollbar:^1.3 --no-update
  64. composer update -W ${{ env.COMPOSER_FLAGS }}
  65. composer exec phpunit -- --verbose --filter Rollbar