run-tests.yml 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. name: Run tests
  2. on:
  3. push:
  4. pull_request:
  5. schedule:
  6. - cron: '0 0 * * *'
  7. jobs:
  8. php-tests:
  9. runs-on: ${{ matrix.os }}
  10. strategy:
  11. matrix:
  12. php: [8.0, 7.4, 7.3, 7.2]
  13. laravel: [6.*, 5.8.*, 5.7.*, 5.6.*, 5.5.*]
  14. dependency-version: [prefer-lowest, prefer-stable]
  15. os: [ubuntu-latest, windows-latest]
  16. include:
  17. - laravel: 6.*
  18. testbench: 4.*
  19. - laravel: 5.8.*
  20. testbench: 3.8.*
  21. - laravel: 5.7.*
  22. testbench: 3.7.*
  23. - laravel: 5.6.*
  24. testbench: 3.6.*
  25. - laravel: 5.5.*
  26. testbench: 3.5.*
  27. exclude:
  28. - laravel: 5.8.*
  29. php: 8.0
  30. - laravel: 5.7.*
  31. php: 8.0
  32. - laravel: 5.6.*
  33. php: 8.0
  34. - laravel: 5.5.*
  35. php: 8.0
  36. - laravel: 5.7.*
  37. php: 7.4
  38. - laravel: 5.6.*
  39. php: 7.4
  40. - laravel: 5.5.*
  41. php: 7.4
  42. name: P${{ matrix.php }} - L${{ matrix.laravel }} - ${{ matrix.dependency-version }} - ${{ matrix.os }}
  43. steps:
  44. - name: Checkout code
  45. uses: actions/checkout@v2
  46. - name: Setup PHP
  47. uses: shivammathur/setup-php@v2
  48. with:
  49. php-version: ${{ matrix.php }}
  50. extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, pdo_sqlite, gd, fileinfo
  51. coverage: none
  52. - name: Install dependencies
  53. run: |
  54. composer require "laravel/framework:${{ matrix.laravel }}" "orchestra/testbench:${{ matrix.testbench }}" --no-interaction --no-update
  55. composer update --${{ matrix.dependency-version }} --prefer-dist --no-interaction --no-suggest
  56. - name: Execute tests
  57. run: vendor/bin/phpunit
  58. - name: Send Slack notification
  59. uses: 8398a7/action-slack@v2
  60. if: ${{ failure() && !! env.SLACK_WEBHOOK }}
  61. with:
  62. status: ${{ job.status }}
  63. author_name: ${{ github.actor }}
  64. env:
  65. SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
  66. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  67. js-tests:
  68. runs-on: ubuntu-latest
  69. name: JavaScript tests
  70. steps:
  71. - name: Checkout code
  72. uses: actions/checkout@v1
  73. - name: Install dependencies
  74. run: yarn install --non-interactive
  75. - name: Execute tests
  76. run: yarn run jest
  77. - name: Send Slack notification
  78. uses: 8398a7/action-slack@v2
  79. if: ${{ failure() && !! env.SLACK_WEBHOOK }}
  80. with:
  81. status: ${{ job.status }}
  82. author_name: ${{ github.actor }}
  83. env:
  84. SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK }}
  85. GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}