main.yml 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122
  1. # https://help.github.com/en/categories/automating-your-workflow-with-github-actions
  2. name: Main
  3. on:
  4. push:
  5. pull_request:
  6. jobs:
  7. tests_coverage:
  8. runs-on: "ubuntu-latest"
  9. name: "PHP 7.4 Unit Tests (with coverage)"
  10. steps:
  11. - name: "Checkout"
  12. uses: "actions/checkout@v4"
  13. - name: "Install PHP"
  14. uses: "shivammathur/setup-php@v2"
  15. with:
  16. coverage: "xdebug"
  17. php-version: "7.4"
  18. tools: composer:v2
  19. - name: "Install dependencies"
  20. run: |
  21. composer require php-coveralls/php-coveralls:^2.2 --dev --no-update
  22. COMPOSER_ROOT_VERSION=dev-master composer update --no-progress --prefer-dist
  23. - name: "Tests"
  24. run: "php vendor/bin/phpunit --coverage-clover build/logs/clover.xml"
  25. - name: Coveralls
  26. env:
  27. COVERALLS_REPO_TOKEN: ${{ secrets.GITHUB_TOKEN }}
  28. run: "php vendor/bin/php-coveralls"
  29. if: ${{ success() }}
  30. tests:
  31. runs-on: "ubuntu-latest"
  32. name: "PHP ${{ matrix.php-version }} Unit Tests"
  33. strategy:
  34. matrix:
  35. php-version:
  36. - "8.0"
  37. - "8.1"
  38. - "8.2"
  39. - "8.3"
  40. steps:
  41. - name: "Checkout"
  42. uses: "actions/checkout@v4"
  43. - name: "Install PHP"
  44. uses: "shivammathur/setup-php@v2"
  45. with:
  46. coverage: "none"
  47. php-version: "${{ matrix.php-version }}"
  48. ini-file: "development"
  49. tools: composer:v2
  50. - name: "Install dependencies"
  51. run: "COMPOSER_ROOT_VERSION=dev-master composer update --no-progress --prefer-dist ${{ matrix.flags }}"
  52. - name: "PHPUnit"
  53. run: "php vendor/bin/phpunit"
  54. test_old_73_80:
  55. runs-on: "ubuntu-latest"
  56. name: "PHP 7.4 Code on PHP 8.3 Integration Tests"
  57. steps:
  58. - name: "Checkout"
  59. uses: "actions/checkout@v4"
  60. - name: "Install PHP"
  61. uses: "shivammathur/setup-php@v2"
  62. with:
  63. coverage: "none"
  64. php-version: "8.3"
  65. ini-file: "development"
  66. tools: composer:v2
  67. - name: "Install PHP 8 dependencies"
  68. run: "COMPOSER_ROOT_VERSION=dev-master composer update --no-progress --prefer-dist"
  69. - name: "Tests"
  70. run: "test_old/run-php-src.sh 7.4.33"
  71. test_old_80_70:
  72. runs-on: "ubuntu-latest"
  73. name: "PHP 8.3 Code on PHP 7.4 Integration Tests"
  74. steps:
  75. - name: "Checkout"
  76. uses: "actions/checkout@v4"
  77. - name: "Install PHP"
  78. uses: "shivammathur/setup-php@v2"
  79. with:
  80. coverage: "none"
  81. php-version: "7.4"
  82. ini-file: "development"
  83. tools: composer:v2
  84. - name: "Install PHP 8 dependencies"
  85. run: "COMPOSER_ROOT_VERSION=dev-master composer update --no-progress --prefer-dist"
  86. - name: "Tests"
  87. run: "test_old/run-php-src.sh 8.3.0RC2"
  88. phpstan:
  89. runs-on: "ubuntu-latest"
  90. name: "PHPStan"
  91. steps:
  92. - name: "Checkout"
  93. uses: "actions/checkout@v4"
  94. - name: "Install PHP"
  95. uses: "shivammathur/setup-php@v2"
  96. with:
  97. coverage: "none"
  98. php-version: "8.3"
  99. tools: composer:v2
  100. - name: "Install dependencies"
  101. run: |
  102. cd tools && composer install
  103. - name: "PHPStan"
  104. run: "php tools/vendor/bin/phpstan"
  105. php-cs-fixer:
  106. runs-on: "ubuntu-latest"
  107. name: "PHP-CS-Fixer"
  108. steps:
  109. - name: "Checkout"
  110. uses: "actions/checkout@v4"
  111. - name: "Install PHP"
  112. uses: "shivammathur/setup-php@v2"
  113. with:
  114. coverage: "none"
  115. php-version: "8.3"
  116. tools: composer:v2
  117. - name: "Install dependencies"
  118. run: |
  119. cd tools && composer install
  120. - name: "php-cs-fixer"
  121. run: "php tools/vendor/bin/php-cs-fixer fix --dry-run"