continuous-integration.yml 6.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221
  1. name: "Continuous Integration"
  2. on:
  3. - push
  4. - pull_request
  5. jobs:
  6. tests:
  7. name: "CI"
  8. runs-on: "${{ matrix.operating-system }}"
  9. strategy:
  10. fail-fast: false
  11. matrix:
  12. php-version:
  13. - "8.1"
  14. dependencies: [highest]
  15. operating-system:
  16. - "ubuntu-latest"
  17. include:
  18. - php-version: "8.1"
  19. dependencies: lowest
  20. operating-system: ubuntu-latest
  21. steps:
  22. - name: "Checkout"
  23. uses: "actions/checkout@v2"
  24. - name: Run CouchDB
  25. timeout-minutes: 1
  26. continue-on-error: true
  27. uses: "cobot/couchdb-action@master"
  28. with:
  29. couchdb version: '2.3.1'
  30. - name: Run MongoDB
  31. uses: supercharge/mongodb-github-action@1.7.0
  32. with:
  33. mongodb-version: 5.0
  34. - name: "Install PHP"
  35. uses: "shivammathur/setup-php@v2"
  36. with:
  37. coverage: "none"
  38. php-version: "${{ matrix.php-version }}"
  39. extensions: mongodb, redis, amqp
  40. tools: "composer:v2"
  41. ini-values: "memory_limit=-1"
  42. - name: Add require for mongodb/mongodb to make tests runnable
  43. run: 'composer require mongodb/mongodb --dev --no-update'
  44. - name: "Change dependencies"
  45. run: |
  46. composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^7
  47. composer config --no-plugins allow-plugins.ocramius/package-versions true
  48. - name: "Update dependencies with composer"
  49. uses: "ramsey/composer-install@v1"
  50. with:
  51. dependency-versions: "${{ matrix.dependencies }}"
  52. - name: "Run tests"
  53. run: "composer exec phpunit -- --exclude-group Elasticsearch,Elastica --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
  60. composer exec phpunit -- --exclude-group Elasticsearch,Elastica --verbose
  61. tests-es-7:
  62. name: "CI with ES ${{ matrix.es-version }} on PHP ${{ matrix.php-version }}"
  63. needs: "tests"
  64. runs-on: "${{ matrix.operating-system }}"
  65. strategy:
  66. fail-fast: false
  67. matrix:
  68. operating-system:
  69. - "ubuntu-latest"
  70. php-version:
  71. - "8.1"
  72. dependencies:
  73. - "highest"
  74. - "lowest"
  75. es-version:
  76. - "7.0.0"
  77. - "7.17.0"
  78. steps:
  79. - name: "Checkout"
  80. uses: "actions/checkout@v2"
  81. # required for elasticsearch
  82. - name: Configure sysctl limits
  83. run: |
  84. sudo swapoff -a
  85. sudo sysctl -w vm.swappiness=1
  86. sudo sysctl -w fs.file-max=262144
  87. sudo sysctl -w vm.max_map_count=262144
  88. - name: Run Elasticsearch
  89. timeout-minutes: 1
  90. uses: elastic/elastic-github-actions/elasticsearch@master
  91. with:
  92. stack-version: "${{ matrix.es-version }}"
  93. - name: "Install PHP"
  94. uses: "shivammathur/setup-php@v2"
  95. with:
  96. coverage: "none"
  97. php-version: "${{ matrix.php-version }}"
  98. extensions: mongodb, redis, amqp
  99. tools: "composer:v2"
  100. ini-values: "memory_limit=-1"
  101. - name: "Change dependencies"
  102. run: "composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^${{ matrix.es-version }}"
  103. - name: "Update dependencies with composer"
  104. uses: "ramsey/composer-install@v1"
  105. with:
  106. dependency-versions: "${{ matrix.dependencies }}"
  107. - name: "Run tests"
  108. run: "composer exec phpunit -- --group Elasticsearch,Elastica --verbose"
  109. - name: "Run tests with psr/log 3"
  110. if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'"
  111. run: |
  112. composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar
  113. composer require --no-update --no-interaction --dev ruflin/elastica elasticsearch/elasticsearch:^7
  114. composer require --no-update psr/log:^3
  115. composer update -W
  116. composer exec phpunit -- --group Elasticsearch,Elastica --verbose
  117. tests-es-8:
  118. name: "CI with ES ${{ matrix.es-version }} on PHP ${{ matrix.php-version }}"
  119. needs: "tests"
  120. runs-on: "${{ matrix.operating-system }}"
  121. strategy:
  122. fail-fast: false
  123. matrix:
  124. operating-system:
  125. - "ubuntu-latest"
  126. php-version:
  127. - "8.1"
  128. dependencies:
  129. - "highest"
  130. - "lowest"
  131. es-version:
  132. - "8.0.0"
  133. - "8.2.0"
  134. steps:
  135. - name: "Checkout"
  136. uses: "actions/checkout@v2"
  137. # required for elasticsearch
  138. - name: Configure sysctl limits
  139. run: |
  140. sudo swapoff -a
  141. sudo sysctl -w vm.swappiness=1
  142. sudo sysctl -w fs.file-max=262144
  143. sudo sysctl -w vm.max_map_count=262144
  144. - name: Run Elasticsearch
  145. timeout-minutes: 1
  146. uses: elastic/elastic-github-actions/elasticsearch@master
  147. with:
  148. stack-version: "${{ matrix.es-version }}"
  149. - name: "Install PHP"
  150. uses: "shivammathur/setup-php@v2"
  151. with:
  152. coverage: "none"
  153. php-version: "${{ matrix.php-version }}"
  154. extensions: mongodb, redis, amqp
  155. tools: "composer:v2"
  156. ini-values: "memory_limit=-1"
  157. - name: "Change dependencies"
  158. run: |
  159. composer remove --no-update --dev graylog2/gelf-php ruflin/elastica elasticsearch/elasticsearch rollbar/rollbar
  160. composer require --no-update --no-interaction --dev elasticsearch/elasticsearch:^8
  161. - name: "Update dependencies with composer"
  162. uses: "ramsey/composer-install@v1"
  163. with:
  164. dependency-versions: "${{ matrix.dependencies }}"
  165. - name: "Run tests"
  166. run: "composer exec phpunit -- --group Elasticsearch,Elastica --verbose"
  167. - name: "Run tests with psr/log 3"
  168. if: "contains(matrix.dependencies, 'highest') && matrix.php-version >= '8.0'"
  169. run: |
  170. composer require --no-update psr/log:^3
  171. composer update -W
  172. composer exec phpunit -- --group Elasticsearch,Elastica --verbose