Skip to content

Commit f65a1ab

Browse files
Thomas FinkThomas Fink
Thomas Fink
authored and
Thomas Fink
committed
chore(ZMS): fix zmsapi zmsdb and zmsclient
1 parent fb8d6a9 commit f65a1ab

File tree

1 file changed

+160
-61
lines changed

1 file changed

+160
-61
lines changed

.github/workflows/php-code-coverage.yaml

Lines changed: 160 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -4,87 +4,186 @@ on:
44
workflow_call:
55

66
jobs:
7-
coverage:
7+
module-coverage:
88
runs-on: ubuntu-latest
9+
container:
10+
image: "ghcr.io/it-at-m/eappointment-php-base:8.0-dev"
911
strategy:
1012
fail-fast: false
1113
matrix:
1214
module: [
13-
'mellon',
1415
'zmsadmin',
15-
'zmsapi',
1616
'zmscalldisplay',
1717
'zmscitizenapi',
18-
'zmsclient',
19-
'zmsdb',
2018
'zmsdldb',
2119
'zmsentities',
2220
'zmsmessaging',
2321
'zmsslim',
2422
'zmsstatistic',
2523
'zmsticketprinter'
2624
]
27-
2825
steps:
29-
- uses: actions/checkout@v4
26+
- uses: actions/checkout@main
27+
- name: Install dependencies
28+
run: |
29+
cd "${{ matrix.module }}"
30+
composer install --no-progress --prefer-dist --optimize-autoloader
31+
- name: Run coverage
32+
run: |
33+
cd "${{ matrix.module }}"
34+
mkdir -p coverage
35+
php -dzend_extension=xdebug.so -dmemory_limit=-1 vendor/bin/phpunit \
36+
--coverage-html coverage/html --coverage-clover coverage/clover.xml
37+
- name: Upload coverage
38+
uses: actions/upload-artifact@v4
39+
with:
40+
name: coverage-temp-${{ matrix.module }}
41+
path: ${{ matrix.module }}/coverage/
42+
retention-days: 1
3043

31-
- name: Setup PHP
32-
uses: shivammathur/setup-php@v2
33-
with:
34-
php-version: '8.0'
35-
coverage: pcov
36-
tools: composer:v2
37-
ini-values: memory_limit=512M
38-
39-
- name: Install dependencies
40-
working-directory: ${{ matrix.module }}
41-
run: composer install --prefer-dist --no-progress
42-
43-
- name: Add ReturnTypeWillChange attribute
44-
run: |
45-
if [ -f "zmsentities/src/Zmsentities/Schema/Entity.php" ]; then
46-
sed -i '1,/class Entity/s/class Entity/#[\ReturnTypeWillChange]\nclass Entity/' zmsentities/src/Zmsentities/Schema/Entity.php
47-
fi
44+
zmsapi-coverage:
45+
runs-on: ubuntu-latest
46+
container:
47+
image: "ghcr.io/it-at-m/eappointment-php-base:8.0-dev"
48+
services:
49+
mariadb:
50+
image: mariadb:10.6
51+
env:
52+
MYSQL_ROOT_PASSWORD: zmsapi
53+
MYSQL_DATABASE: zmsbo
54+
MYSQL_CHARACTER_SET: utf8mb4
55+
MYSQL_COLLATION: utf8mb4_unicode_ci
56+
ports:
57+
- 3306:3306
58+
options: >-
59+
--health-cmd "mysqladmin ping"
60+
--health-interval 10s
61+
--health-timeout 10s
62+
--health-retries 5
63+
steps:
64+
- uses: actions/checkout@main
65+
- name: Install python3
66+
run: |
67+
apt update
68+
apt install -y python3 python3-click python3-git
69+
- name: Reference local modules
70+
run: python3 ./cli modules reference-libraries --no-symlink
71+
- name: Install dependencies
72+
run: |
73+
cd zmsapi
74+
composer install --no-progress --prefer-dist --optimize-autoloader
75+
- name: Setup and run coverage
76+
env:
77+
MYSQL_PORT: "tcp://mariadb:3306"
78+
MYSQL_DATABASE: zmsbo
79+
MYSQL_ROOT_PASSWORD: zmsapi
80+
run: |
81+
cd zmsapi
82+
rm -rf data
83+
ln -s vendor/eappointment/zmsdb/tests/Zmsdb/fixtures data
84+
vendor/bin/importTestData --commit
85+
mkdir -p coverage
86+
php -dzend_extension=xdebug.so -dmemory_limit=-1 vendor/bin/phpunit \
87+
--coverage-html coverage/html --coverage-clover coverage/clover.xml
88+
- name: Upload coverage
89+
uses: actions/upload-artifact@v4
90+
with:
91+
name: coverage-temp-zmsapi
92+
path: zmsapi/coverage/
93+
retention-days: 1
4894

49-
- name: Run tests with coverage
50-
working-directory: ${{ matrix.module }}
51-
env:
52-
XDEBUG_MODE: coverage
53-
run: |
54-
mkdir -p coverage
55-
vendor/bin/phpunit --coverage-html coverage/html --coverage-clover coverage/clover.xml
95+
zmsdb-coverage:
96+
runs-on: ubuntu-latest
97+
container:
98+
image: "ghcr.io/it-at-m/eappointment-php-base:8.0-dev"
99+
services:
100+
mariadb:
101+
image: mariadb:10.6
102+
env:
103+
MYSQL_ROOT_PASSWORD: zmsdb
104+
MYSQL_DATABASE: zmsbo
105+
MYSQL_CHARACTER_SET: utf8mb4
106+
MYSQL_COLLATION: utf8mb4_unicode_ci
107+
ports:
108+
- 3306:3306
109+
options: >-
110+
--health-cmd "mysqladmin ping"
111+
--health-interval 10s
112+
--health-timeout 10s
113+
--health-retries 5
114+
steps:
115+
- uses: actions/checkout@main
116+
- name: Install python3
117+
run: |
118+
apt update
119+
apt install -y python3 python3-click python3-git
120+
- name: Reference local modules
121+
run: python3 ./cli modules reference-libraries --no-symlink
122+
- name: Install dependencies
123+
run: |
124+
cd zmsdb
125+
composer install --no-progress --prefer-dist --optimize-autoloader
126+
- name: Setup and run coverage
127+
env:
128+
MYSQL_PORT: "tcp://mariadb:3306"
129+
MYSQL_DATABASE: zmsbo
130+
MYSQL_ROOT_PASSWORD: zmsdb
131+
run: |
132+
cd zmsdb
133+
bin/importTestData --commit
134+
mkdir -p coverage
135+
php -dzend_extension=xdebug.so -dmemory_limit=-1 vendor/bin/phpunit \
136+
--coverage-html coverage/html --coverage-clover coverage/clover.xml
137+
- name: Upload coverage
138+
uses: actions/upload-artifact@v4
139+
with:
140+
name: coverage-temp-zmsdb
141+
path: zmsdb/coverage/
142+
retention-days: 1
56143

57-
- name: Upload individual coverage
58-
uses: actions/upload-artifact@v4
59-
with:
60-
name: coverage-temp-${{ matrix.module }}
61-
path: ${{ matrix.module }}/coverage/
62-
retention-days: 1
63-
compression-level: 6
144+
zmsclient-coverage:
145+
runs-on: ubuntu-latest
146+
steps:
147+
- uses: actions/checkout@main
148+
- name: Install Docker Compose
149+
run: |
150+
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
151+
sudo chmod +x /usr/local/bin/docker-compose
152+
- name: Run coverage
153+
run: |
154+
cd zmsclient
155+
docker-compose up -d
156+
mkdir -p coverage
157+
docker-compose exec -T test ./vendor/bin/phpunit \
158+
--coverage-html coverage/html --coverage-clover coverage/clover.xml
159+
- name: Upload coverage
160+
uses: actions/upload-artifact@v4
161+
with:
162+
name: coverage-temp-zmsclient
163+
path: zmsclient/coverage/
164+
retention-days: 1
64165

65166
combine-coverage:
66-
needs: coverage
167+
needs: [module-coverage, zmsapi-coverage, zmsdb-coverage, zmsclient-coverage]
67168
runs-on: ubuntu-latest
68169
steps:
69-
- name: Download all coverage reports
70-
uses: actions/download-artifact@v4
71-
with:
72-
path: all-coverage
73-
merge-multiple: true
74-
75-
- name: Combine reports
76-
run: |
77-
mkdir -p combined-coverage
78-
for module in mellon zmsadmin zmsapi zmscalldisplay zmscitizenapi zmsclient zmsdb zmsdldb zmsentities zmsmessaging zmsslim zmsstatistic zmsticketprinter; do
79-
if [ -d "all-coverage/coverage-temp-$module" ]; then
80-
mkdir -p "combined-coverage/$module"
81-
cp -r "all-coverage/coverage-temp-$module"/* "combined-coverage/$module/"
82-
fi
83-
done
84-
85-
- name: Upload combined coverage
86-
uses: actions/upload-artifact@v4
87-
with:
88-
name: coverage-reports
89-
path: combined-coverage/
90-
retention-days: 7
170+
- name: Download all coverage reports
171+
uses: actions/download-artifact@v4
172+
with:
173+
path: all-coverage
174+
merge-multiple: true
175+
- name: Combine reports
176+
run: |
177+
mkdir -p combined-coverage
178+
for module in zmsadmin zmscalldisplay zmscitizenapi zmsdldb zmsentities zmsmessaging zmsslim zmsstatistic zmsticketprinter zmsapi zmsdb zmsclient; do
179+
if [ -d "all-coverage/coverage-temp-$module" ]; then
180+
mkdir -p "combined-coverage/$module"
181+
cp -r "all-coverage/coverage-temp-$module"/* "combined-coverage/$module/"
182+
fi
183+
done
184+
- name: Upload combined coverage
185+
uses: actions/upload-artifact@v4
186+
with:
187+
name: coverage-reports
188+
path: combined-coverage/
189+
retention-days: 7

0 commit comments

Comments
 (0)