run-tests.yml 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. name: Run tests
  2. on:
  3. push:
  4. pull_request:
  5. schedule:
  6. - cron: '0 0 * * *'
  7. jobs:
  8. tests:
  9. if: "!contains(github.event.head_commit.message, 'skip ci')"
  10. runs-on: ${{ matrix.os }}
  11. services:
  12. mysql:
  13. image: mysql:5.7
  14. env:
  15. MYSQL_DATABASE: laravel_excel
  16. MYSQL_ALLOW_EMPTY_PASSWORD: yes
  17. ports:
  18. - 3306
  19. options: --health-cmd="mysqladmin ping" --health-interval=10s --health-timeout=5s --health-retries=3
  20. strategy:
  21. matrix:
  22. php: [7.4, 8.0, 8.1, 8.2, 8.3]
  23. laravel: [10, 9, 8, 7, 6, 5.8]
  24. dependency-version: [prefer-stable]
  25. os: [ubuntu-latest]
  26. include:
  27. - laravel: 10
  28. scout: 10.*
  29. testbench: 8.*
  30. - laravel: 9
  31. scout: 9.*
  32. testbench: 7.*
  33. - laravel: 8
  34. scout: 8.*
  35. testbench: 6.*
  36. - laravel: 7
  37. scout: 7.2.*
  38. testbench: 5.*
  39. - laravel: 6
  40. scout: 7.1.*
  41. testbench: 4.*
  42. - laravel: 5.8
  43. scout: 7.1.*
  44. testbench: 3.8.*
  45. exclude:
  46. - laravel: 10
  47. php: 8.0
  48. - laravel: 10
  49. php: 7.4
  50. - laravel: 9
  51. php: 7.4
  52. - laravel: 7
  53. php: 8.0
  54. - laravel: 7
  55. php: 8.1
  56. - laravel: 7
  57. php: 8.2
  58. - laravel: 7
  59. php: 8.3
  60. - laravel: 6
  61. php: 8.0
  62. - laravel: 6
  63. php: 8.1
  64. - laravel: 6
  65. php: 8.2
  66. - laravel: 6
  67. php: 8.3
  68. - laravel: 5.8
  69. php: 8.0
  70. - laravel: 5.8
  71. php: 8.1
  72. - laravel: 5.8
  73. php: 8.2
  74. - laravel: 5.8
  75. php: 8.3
  76. name: PHP${{ matrix.php }} - L${{ matrix.laravel }}
  77. steps:
  78. - name: Checkout code
  79. uses: actions/checkout@v4
  80. - name: Cache dependencies
  81. uses: actions/cache@v3
  82. with:
  83. path: ~/.composer/cache/files
  84. key: dependency-cache-laravel-${{ matrix.laravel }}-php-${{ matrix.php }}-composer-${{ hashFiles('composer.json') }}
  85. - name: Setup PHP
  86. uses: shivammathur/setup-php@v2
  87. with:
  88. php-version: ${{ matrix.php }}
  89. extensions: dom, curl, libxml, mbstring, zip, pcntl, pdo, sqlite, mysql, pdo_mysql, bcmath, intl, gd, exif, iconv
  90. coverage: none
  91. - name: Install dependencies
  92. run: |
  93. composer require "laravel/framework:${{ matrix.laravel }}.*" "orchestra/testbench:${{ matrix.testbench }}" "laravel/scout:${{ matrix.scout }}" --no-interaction --no-update
  94. composer update --${{ matrix.dependency-version }} --no-interaction
  95. - name: Install legacy factories
  96. run: |
  97. composer require "laravel/legacy-factories" --no-interaction
  98. if: "matrix.laravel >= 8"
  99. - name: Execute tests
  100. run: vendor/bin/phpunit --testdox --configuration phpunit.xml.dist
  101. env:
  102. DB_PORT: ${{ job.services.mysql.ports[3306] }}