test.yml 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. name: Tests
  2. on:
  3. push:
  4. pull_request:
  5. jobs:
  6. test:
  7. runs-on: ${{ matrix.operating-system }}
  8. strategy:
  9. matrix:
  10. operating-system: ['ubuntu-20.04', 'ubuntu-18.04']
  11. php-versions: ['7.0', '7.1', '7.2', '7.3', '7.4', '8.0']
  12. phpunit-versions: ['latest']
  13. steps:
  14. - name: Checkout
  15. uses: actions/checkout@v2
  16. - name: Checkout submodules
  17. uses: textbook/git-checkout-submodule-action@master
  18. - name: Setup PHP
  19. uses: shivammathur/setup-php@v2
  20. with:
  21. php-version: ${{ matrix.php-versions }}
  22. extensions: gmp
  23. coverage: none
  24. - name: Get composer cache directory
  25. id: composer-cache
  26. run: echo "::set-output name=dir::$(composer config cache-files-dir)"
  27. - name: Cache dependencies
  28. uses: actions/cache@v2
  29. with:
  30. path: ${{ steps.composer-cache.outputs.dir }}
  31. key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
  32. restore-keys: ${{ runner.os }}-composer-
  33. - name: Install dependencies
  34. run: composer install --prefer-dist
  35. - name: Run tests
  36. run: make phpunit-full-ci
  37. coverage:
  38. runs-on: ${{ matrix.operating-system }}
  39. strategy:
  40. matrix:
  41. operating-system: ['ubuntu-20.04']
  42. php-versions: ['7.4']
  43. steps:
  44. - name: Checkout
  45. uses: actions/checkout@v2
  46. - name: Checkout submodules
  47. uses: textbook/git-checkout-submodule-action@master
  48. - name: Setup PHP
  49. uses: shivammathur/setup-php@v2
  50. with:
  51. php-version: ${{ matrix.php-versions }}
  52. extensions: gmp, xdebug
  53. - name: Get composer cache directory
  54. id: composer-cache
  55. run: echo "::set-output name=dir::$(composer config cache-files-dir)"
  56. - name: Cache dependencies
  57. uses: actions/cache@v2
  58. with:
  59. path: ${{ steps.composer-cache.outputs.dir }}
  60. key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
  61. restore-keys: ${{ runner.os }}-composer-
  62. - name: Install dependencies
  63. run: composer install --prefer-dist
  64. - name: Run tests
  65. run: make phpunit-ci
  66. - name: Upload coverage to Scrutinizer
  67. run: make scrutinizer