ci.yml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150
  1. name: CI
  2. on:
  3. push:
  4. pull_request:
  5. jobs:
  6. PHPUnit:
  7. name: PHPUnit (PHP ${{ matrix.php }})
  8. runs-on: ubuntu-22.04
  9. strategy:
  10. matrix:
  11. php:
  12. - 8.3
  13. - 8.2
  14. - 8.1
  15. - 8.0
  16. - 7.4
  17. - 7.3
  18. - 7.2
  19. - 7.1
  20. - 7.0
  21. - 5.6
  22. - 5.5
  23. - 5.4
  24. - 5.3
  25. steps:
  26. - uses: actions/checkout@v4
  27. - uses: shivammathur/setup-php@v2
  28. with:
  29. php-version: ${{ matrix.php }}
  30. coverage: xdebug
  31. ini-file: development
  32. ini-values: disable_functions='' # do not disable PCNTL functions on PHP < 8.1
  33. extensions: sockets, pcntl ${{ matrix.php >= 5.6 && ', event' || '' }} ${{ matrix.php >= 5.4 && ', ev' || '' }}
  34. env:
  35. fail-fast: true # fail step if any extension can not be installed
  36. - run: composer install
  37. - run: vendor/bin/phpunit --coverage-text
  38. if: ${{ matrix.php >= 7.3 }}
  39. - run: vendor/bin/phpunit --coverage-text -c phpunit.xml.legacy
  40. if: ${{ matrix.php < 7.3 }}
  41. PHPUnit-Unstable:
  42. name: PHPUnit (Unstable PHP ${{ matrix.php }})
  43. runs-on: ubuntu-20.04
  44. continue-on-error: true
  45. strategy:
  46. matrix:
  47. php:
  48. - 8.3
  49. - 8.2
  50. - 8.1
  51. - 8.0
  52. - 7.4
  53. - 7.3
  54. - 7.2
  55. - 7.1
  56. - 7.0
  57. - 5.6
  58. - 5.5
  59. - 5.4
  60. - 5.3
  61. steps:
  62. - uses: actions/checkout@v4
  63. - uses: shivammathur/setup-php@v2
  64. with:
  65. php-version: ${{ matrix.php }}
  66. coverage: xdebug
  67. ini-file: development
  68. extensions: sockets, pcntl
  69. - name: Install ext-uv on PHP 7+
  70. run: |
  71. sudo apt-get update -q && sudo apt-get install libuv1-dev
  72. echo "yes" | sudo pecl install ${{ matrix.php >= 8.0 && 'uv-0.3.0' || 'uv-0.2.4' }}
  73. php -m | grep -q uv || echo "extension=uv.so" >> "$(php -r 'echo php_ini_loaded_file();')"
  74. if: ${{ matrix.php >= 7.0 }}
  75. - name: Install legacy ext-libevent on PHP < 7.0
  76. run: |
  77. sudo apt-get update && sudo apt-get install libevent-dev
  78. curl http://pecl.php.net/get/libevent-0.1.0.tgz | tar -xz
  79. pushd libevent-0.1.0
  80. phpize
  81. ./configure
  82. make
  83. sudo make install
  84. popd
  85. echo "extension=libevent.so" | sudo tee -a "$(php -r 'echo php_ini_loaded_file();')"
  86. if: ${{ matrix.php < 7.0 }}
  87. - name: Install legacy ext-libev on PHP < 7.0
  88. run: |
  89. git clone --recursive https://github.com/m4rw3r/php-libev
  90. pushd php-libev
  91. phpize
  92. ./configure --with-libev
  93. make
  94. sudo make install
  95. popd
  96. echo "extension=libev.so" | sudo tee -a "$(php -r 'echo php_ini_loaded_file();')"
  97. if: ${{ matrix.php < 7.0 }}
  98. - run: composer install
  99. - run: vendor/bin/phpunit --coverage-text
  100. if: ${{ matrix.php >= 7.3 }}
  101. - run: vendor/bin/phpunit --coverage-text -c phpunit.xml.legacy
  102. if: ${{ matrix.php < 7.3 }}
  103. PHPUnit-Windows:
  104. name: PHPUnit (PHP ${{ matrix.php }} on Windows)
  105. runs-on: windows-2022
  106. continue-on-error: true
  107. strategy:
  108. matrix:
  109. php:
  110. - 8.3
  111. - 8.2
  112. - 8.1
  113. - 8.0
  114. - 7.4
  115. - 7.3
  116. - 7.2
  117. - 7.1
  118. steps:
  119. - uses: actions/checkout@v4
  120. - uses: shivammathur/setup-php@v2
  121. with:
  122. php-version: ${{ matrix.php }}
  123. coverage: xdebug
  124. ini-file: development
  125. extensions: sockets,event # future: add uv-beta (installs, but can not load)
  126. - run: composer install
  127. - run: vendor/bin/phpunit --coverage-text
  128. if: ${{ matrix.php >= 7.3 }}
  129. - run: vendor/bin/phpunit --coverage-text -c phpunit.xml.legacy
  130. if: ${{ matrix.php < 7.3 }}
  131. PHPUnit-hhvm:
  132. name: PHPUnit (HHVM)
  133. runs-on: ubuntu-22.04
  134. continue-on-error: true
  135. steps:
  136. - uses: actions/checkout@v4
  137. - run: cp "$(which composer)" composer.phar && ./composer.phar self-update --2.2 # downgrade Composer for HHVM
  138. - name: Run hhvm composer.phar install
  139. uses: docker://hhvm/hhvm:3.30-lts-latest
  140. with:
  141. args: hhvm composer.phar install
  142. - name: Run hhvm vendor/bin/phpunit
  143. uses: docker://hhvm/hhvm:3.30-lts-latest
  144. with:
  145. args: hhvm vendor/bin/phpunit