50
50
- php : ' 8.3'
51
51
wp : ' trunk'
52
52
- php : ' 8.2'
53
+ phpunit : ' 9.6'
53
54
wp : ' latest'
54
- # coverage: true # TODO: Uncomment once coverage reports are fixed. See <https://github.com/WordPress/performance/pull/1586#issuecomment-2474498387>.
55
+ coverage : true
55
56
env :
56
57
WP_ENV_PHP_VERSION : ${{ matrix.php }}
57
58
WP_ENV_CORE : ${{ matrix.wp == 'trunk' && 'WordPress/WordPress' || format( 'https://wordpress.org/wordpress-{0}.zip', matrix.wp ) }}
@@ -68,20 +69,51 @@ jobs:
68
69
- name : Build assets
69
70
run : npm run build
70
71
- name : Install WordPress
71
- run : npm run wp-env start
72
+ run : |
73
+ if [ "${{ matrix.coverage }}" == "true" ]; then
74
+ npm run wp-env start -- --xdebug=coverage
75
+ else
76
+ npm run wp-env start
77
+ fi
72
78
- name : Composer Install
73
79
run : npm run wp-env run tests-cli -- --env-cwd="wp-content/plugins/$(basename $(pwd))" composer install --no-interaction --no-progress
80
+ - name : Update Composer Dependencies
81
+ run : composer update --with-all-dependencies --no-interaction --no-progress
82
+ - name : Install PHPUnit
83
+ run : |
84
+ if [ "${{ matrix.php }}" == "8.2" ]; then
85
+ composer require phpunit/phpunit:${{ matrix.phpunit }} --with-all-dependencies --ignore-platform-reqs
86
+ else
87
+ composer require --dev phpunit/phpunit:${{ matrix.phpunit }}
88
+ fi
89
+ if : matrix.phpunit != ''
74
90
- name : Running single site unit tests
75
91
run : |
76
92
if [ "${{ matrix.coverage }}" == "true" ]; then
77
- npm run test-php -- --coverage-clover=coverage-${{ github.sha }}.xml
93
+ npm run test-php:performance-lab -- -- -- --coverage-clover=./single-site-reports/coverage-performance-lab.xml
94
+ npm run test-php:auto-sizes -- -- -- --coverage-clover=./single-site-reports/coverage-auto-sizes.xml
95
+ npm run test-php:dominant-color-images -- -- -- --coverage-clover=./single-site-reports/coverage-dominant-color-images.xml
96
+ npm run test-php:embed-optimizer -- -- -- --coverage-clover=./single-site-reports/coverage-embed-optimizer.xml
97
+ npm run test-php:image-prioritizer -- -- -- --coverage-clover=./single-site-reports/coverage-image-prioritizer.xml
98
+ npm run test-php:optimization-detective -- -- -- --coverage-clover=./single-site-reports/coverage-optimization-detective.xml
99
+ npm run test-php:speculation-rules -- -- -- --coverage-clover=./single-site-reports/coverage-speculation-rules.xml
100
+ npm run test-php:web-worker-offloading -- -- -- --coverage-clover=./single-site-reports/coverage-web-worker-offloading.xml
101
+ npm run test-php:webp-uploads -- -- -- --coverage-clover=./single-site-reports/coverage-webp-uploads.xml
78
102
else
79
103
npm run test-php
80
104
fi
81
105
- name : Running multisite unit tests
82
106
run : |
83
107
if [ "${{ matrix.coverage }}" == "true" ]; then
84
- npm run test-php-multisite -- --coverage-clover=coverage-multisite-${{ github.sha }}.xml
108
+ npm run test-php-multisite:performance-lab -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-performance-lab.xml
109
+ npm run test-php-multisite:auto-sizes -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-auto-sizes.xml
110
+ npm run test-php-multisite:dominant-color-images -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-dominant-color-images.xml
111
+ npm run test-php-multisite:embed-optimizer -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-embed-optimizer.xml
112
+ npm run test-php-multisite:image-prioritizer -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-image-prioritizer.xml
113
+ npm run test-php-multisite:optimization-detective -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-optimization-detective.xml
114
+ npm run test-php-multisite:speculation-rules -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-speculation-rules.xml
115
+ npm run test-php-multisite:web-worker-offloading -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-web-worker-offloading.xml
116
+ npm run test-php-multisite:webp-uploads -- -- -- --coverage-clover=./multisite-reports/coverage-multisite-webp-uploads.xml
85
117
else
86
118
npm run test-php-multisite
87
119
fi
90
122
uses : codecov/codecov-action@v5
91
123
with :
92
124
token : ${{ secrets.CODECOV_TOKEN }}
93
- files : coverage-${{ github.sha }}.xml
125
+ directory : ./single-site-reports
94
126
flags : single
95
127
name : ${{ matrix.php }}-single-site-coverage
96
128
fail_ci_if_error : true
99
131
uses : codecov/codecov-action@v5
100
132
with :
101
133
token : ${{ secrets.CODECOV_TOKEN }}
102
- files : coverage- multisite-${{ github.sha }}.xml
134
+ directory : ./ multisite-reports
103
135
flags : multisite
104
136
name : ${{ matrix.php }}-multisite-coverage
105
137
fail_ci_if_error : true
0 commit comments