[!!!][FEATURE] Require eliashaeussler/cache-warmup
^4.0
#6104
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
name: Tests | |
on: | |
push: | |
branches: | |
- main | |
- 'renovate/**' | |
pull_request: | |
branches: | |
- main | |
jobs: | |
tests: | |
name: Tests (PHP ${{ matrix.php-version }}, TYPO3 ${{ matrix.typo3-version }} & ${{ matrix.dependencies }} dependencies) | |
runs-on: ubuntu-latest | |
strategy: | |
fail-fast: false | |
matrix: | |
php-version: ["8.1", "8.2", "8.3", "8.4"] | |
typo3-version: ["12.4", "13.4"] | |
dependencies: ["highest", "lowest"] | |
exclude: | |
- php-version: "8.1" | |
typo3-version: "13.4" | |
# Enforce PHPUnit ^11.2 for TYPO3 13.4 & lowest dependencies | |
# since it adds support for doubling readonly classes (SiteFinder in our case) | |
include: | |
- php-version: "8.2" | |
typo3-version: "13.4" | |
dependencies: "lowest" | |
composer-options: "--with=phpunit/phpunit:^11.2" | |
- php-version: "8.3" | |
typo3-version: "13.4" | |
dependencies: "lowest" | |
composer-options: "--with=phpunit/phpunit:^11.2" | |
# Enforce eliashaeussler/valinor-xml ^1.0.3 for PHP 8.4 & lowest dependencies | |
# since 1.0.2 has broken PHP 8.4 support | |
- php-version: "8.4" | |
typo3-version: "12.4" | |
dependencies: "lowest" | |
composer-options: "--with=eliashaeussler/valinor-xml:^1.0.3" | |
- php-version: "8.4" | |
typo3-version: "13.4" | |
dependencies: "lowest" | |
composer-options: "--with=phpunit/phpunit:^11.2 --with=eliashaeussler/valinor-xml:^1.0.3" | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Prepare environment | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: ${{ matrix.php-version }} | |
tools: composer:v2 | |
coverage: none | |
# Setup DDEV | |
- name: Setup DDEV | |
uses: ddev/github-action-setup-ddev@v1 | |
with: | |
autostart: false | |
- name: Configure and start DDEV | |
run: | | |
ddev config --project-type=typo3 --php-version=${{ matrix.php-version }} --webimage-extra-packages= | |
ddev start | |
# Install dependencies | |
- name: Install Composer dependencies | |
uses: ramsey/composer-install@v3 | |
with: | |
dependency-versions: ${{ matrix.dependencies }} | |
composer-options: --with=typo3/cms-core:"^${{ matrix.typo3-version }}" ${{ matrix.composer-options }} | |
# Run tests | |
- name: Run acceptance tests | |
uses: nick-fields/retry@v3 | |
with: | |
max_attempts: 3 | |
retry_on: error | |
timeout_minutes: 10 | |
command: ddev composer test:acceptance | |
new_command_on_retry: ddev composer test:acceptance -- -g failed | |
- name: Run functional and unit tests | |
run: | | |
ddev composer test:functional | |
ddev composer test:unit | |
# Save acceptance reports | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: acceptance-reports-${{ matrix.php-version }}-${{ matrix.typo3-version }}-${{ matrix.dependencies }} | |
path: .Build/log/acceptance-reports | |
if: failure() | |
coverage: | |
name: Test coverage | |
runs-on: ubuntu-latest | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Prepare environment | |
- name: Setup PHP | |
uses: shivammathur/setup-php@v2 | |
with: | |
php-version: 8.4 | |
tools: composer:v2 | |
coverage: none | |
# Setup DDEV | |
- name: Setup DDEV | |
uses: ddev/github-action-setup-ddev@v1 | |
with: | |
autostart: false | |
- name: Configure and start DDEV | |
run: | | |
ddev config --project-type=typo3 --xdebug-enabled=true | |
ddev start | |
# Install dependencies | |
- name: Install Composer dependencies | |
uses: ramsey/composer-install@v3 | |
# Run tests | |
- name: Run tests | |
uses: nick-fields/retry@v3 | |
with: | |
max_attempts: 3 | |
retry_on: error | |
timeout_minutes: 10 | |
command: ddev composer test:coverage | |
# Upload artifact | |
- name: Fix coverage path | |
working-directory: .Build/coverage | |
run: sed -i 's#/var/www/html#${{ github.workspace }}#g' clover.xml | |
- name: Upload coverage artifact | |
uses: actions/upload-artifact@v4 | |
with: | |
name: coverage | |
path: .Build/coverage/clover.xml | |
retention-days: 7 | |
# Save acceptance reports | |
- uses: actions/upload-artifact@v4 | |
with: | |
name: acceptance-reports-coverage | |
path: .Build/log/acceptance-reports | |
if: failure() | |
coverage-report: | |
name: Report test coverage | |
runs-on: ubuntu-latest | |
needs: coverage | |
steps: | |
- uses: actions/checkout@v4 | |
with: | |
fetch-depth: 0 | |
# Download artifact | |
- name: Download coverage artifact | |
id: download | |
uses: actions/download-artifact@v4 | |
with: | |
name: coverage | |
# CodeClimate | |
- name: CodeClimate report | |
uses: paambaati/[email protected] | |
if: env.CC_TEST_REPORTER_ID | |
env: | |
CC_TEST_REPORTER_ID: ${{ secrets.CC_TEST_REPORTER_ID }} | |
with: | |
coverageLocations: | | |
${{ steps.download.outputs.download-path }}/clover.xml:clover | |
# Coveralls | |
- name: Coveralls report | |
uses: coverallsapp/github-action@v2 | |
with: | |
file: ${{ steps.download.outputs.download-path }}/clover.xml |