@@ -15,10 +15,18 @@ jobs:
15
15
run : |
16
16
cd "${{ matrix.module }}"
17
17
composer install --no-progress --prefer-dist --optimize-autoloader
18
- - name : Run Unit Tests
18
+ - name : Run Unit Tests with Coverage
19
19
run : |
20
20
cd "${{ matrix.module }}"
21
- ./vendor/bin/phpunit
21
+ mkdir -p coverage
22
+ php -dzend_extension=xdebug.so -dmemory_limit=-1 ./vendor/bin/phpunit \
23
+ --coverage-html coverage/html --coverage-clover coverage/clover.xml
24
+ - name : Upload Coverage
25
+ uses : actions/upload-artifact@v4
26
+ with :
27
+ name : coverage-${{ matrix.module }}
28
+ path : ${{ matrix.module }}/coverage/
29
+ retention-days : 1
22
30
strategy :
23
31
fail-fast : false
24
32
matrix :
42
50
- module : zmsticketprinter
43
51
php_version : " 8.0"
44
52
45
-
46
53
zmsapi-test :
47
54
runs-on : ubuntu-latest
48
55
container :
91
98
ln -s vendor/eappointment/zmsdb/tests/Zmsdb/fixtures data
92
99
echo "Importing test data..."
93
100
vendor/bin/importTestData --commit
101
+ mkdir -p coverage
94
102
php -dzend_extension=xdebug.so -dmemory_limit=-1 vendor/bin/phpunit \
95
- -v --colors=never --coverage-text --coverage-html public/_tests/coverage/ --log-junit \
96
- public/_tests/junit.xml
103
+ --coverage-html coverage/html --coverage-clover coverage/clover.xml
104
+ - name : Upload Coverage
105
+ uses : actions/upload-artifact@v4
106
+ with :
107
+ name : coverage-zmsapi
108
+ path : zmsapi/coverage/
109
+ retention-days : 1
97
110
98
111
zmsdb-test :
99
112
runs-on : ubuntu-latest
@@ -139,12 +152,15 @@ jobs:
139
152
run : |
140
153
cd zmsdb
141
154
bin/importTestData --commit
155
+ mkdir -p coverage
142
156
php -dzend_extension=xdebug.so -dmemory_limit=-1 vendor/bin/phpunit \
143
- -v --colors=never --coverage-text --coverage-html public/_tests/coverage/ --log-junit \
144
- public/_tests/junit.xml
145
-
146
-
147
-
157
+ --coverage-html coverage/html --coverage-clover coverage/clover.xml
158
+ - name : Upload Coverage
159
+ uses : actions/upload-artifact@v4
160
+ with :
161
+ name : coverage-zmsdb
162
+ path : zmsdb/coverage/
163
+ retention-days : 1
148
164
149
165
zmsclient-test :
150
166
runs-on : ubuntu-latest
@@ -166,11 +182,6 @@ jobs:
166
182
echo "Installing Composer dependencies for $module"
167
183
(cd "$module" && composer install --no-progress --prefer-dist --optimize-autoloader)
168
184
done
169
- - name : Install Docker Compose
170
- run : |
171
- sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
172
- sudo chmod +x /usr/local/bin/docker-compose
173
- docker-compose --version
174
185
175
186
- name : Install Docker Compose
176
187
run : |
@@ -180,4 +191,42 @@ jobs:
180
191
181
192
- name : Run Unit Tests
182
193
run : |
183
- /bin/bash -c "cd ./zmsclient && docker-compose up -d && docker-compose exec -T test ./vendor/bin/phpunit"
194
+ cd ./zmsclient
195
+ mkdir -p coverage
196
+ docker-compose up -d
197
+ docker-compose exec -T test php -dzend_extension=xdebug.so -dmemory_limit=-1 \
198
+ ./vendor/bin/phpunit --coverage-html coverage/html --coverage-clover coverage/clover.xml
199
+
200
+ - name : Upload Coverage
201
+ uses : actions/upload-artifact@v4
202
+ with :
203
+ name : coverage-zmsclient
204
+ path : zmsclient/coverage/
205
+ retention-days : 1
206
+
207
+ combine-coverage :
208
+ needs : [module-test, zmsapi-test, zmsdb-test, zmsclient-test]
209
+ runs-on : ubuntu-latest
210
+ steps :
211
+ - name : Download all coverage reports
212
+ uses : actions/download-artifact@v4
213
+ with :
214
+ path : all-coverage
215
+ merge-multiple : true
216
+
217
+ - name : Combine reports
218
+ run : |
219
+ mkdir -p combined-coverage
220
+ for module in zmsadmin zmscalldisplay zmscitizenapi zmsdldb zmsentities zmsmessaging zmsslim zmsstatistic zmsticketprinter zmsapi zmsdb zmsclient; do
221
+ if [ -d "all-coverage/coverage-$module" ]; then
222
+ mkdir -p "combined-coverage/$module"
223
+ cp -r "all-coverage/coverage-$module"/* "combined-coverage/$module/"
224
+ fi
225
+ done
226
+
227
+ - name : Upload combined coverage
228
+ uses : actions/upload-artifact@v4
229
+ with :
230
+ name : coverage-reports
231
+ path : combined-coverage/
232
+ retention-days : 7
0 commit comments