Skip to content

Commit 711cdc9

Browse files
rvtovarAlex Tovar
and
Alex Tovar
authored
Added Xdebug Support to Circle CI for Code Coverage (#2006)
* added code_coverage capabilities to xdmod --------- Co-authored-by: Alex Tovar <[email protected]>
1 parent 1789ba3 commit 711cdc9

File tree

5 files changed

+1140
-0
lines changed

5 files changed

+1140
-0
lines changed

.circleci/config.yml

+45
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@ jobs:
1717
type: string
1818
string_os:
1919
type: string
20+
schedule-name:
21+
type: string
2022
executor: << parameters.os >>
2123
environment:
2224
COMPOSER_ALLOW_SUPERUSER: 1
@@ -55,6 +57,8 @@ jobs:
5557
command: |
5658
docker exec xdmod mkdir /root/phpunit
5759
docker exec xdmod mkdir /tmp/screenshots
60+
docker exec xdmod mkdir /root/code_coverage_raw
61+
docker exec xdmod mkdir /root/code_coverage
5862
- run:
5963
name: Install XDMoD Composer Dependencies
6064
command: docker exec -w /root/xdmod xdmod composer install
@@ -100,6 +104,18 @@ jobs:
100104
- run:
101105
name: Make sure that the Test Dependencies are installed
102106
command: docker exec -w /root/xdmod xdmod composer install --no-progress
107+
- when:
108+
condition:
109+
and:
110+
- equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
111+
- equal: [ "xdmod-time-trigger", << pipeline.schedule.name >> ]
112+
113+
steps:
114+
- run:
115+
name: Installing Code Coverage Dependencies
116+
command: |
117+
docker exec -w /root/xdmod xdmod /root/xdmod/tools/dev/code_coverage/codeCoverageSetup.sh -b . -x /root/xdmod/tools/dev/code_coverage/start_xdebug.php -p /root/xdmod/tools/dev/code_coverage/combine_xdebug.php
118+
103119
- run:
104120
name: Run Regression Tests
105121
command: docker exec -e XDMOD_TEST_MODE=<< parameters.install-type >> -w /root/xdmod xdmod /root/xdmod/tests/regression/runtests.sh
@@ -110,6 +126,7 @@ jobs:
110126
docker exec xdmod mv /root/xdmod/configuration/portal_settings.ini /root/xdmod/configuration/portal_settings.ini.old
111127
docker exec xdmod cp /etc/xdmod/portal_settings.ini /root/xdmod/configuration/portal_settings.ini
112128
docker exec xdmod cp /etc/xdmod/organization.json /root/xdmod/configuration/organization.json
129+
113130
- run:
114131
name: Running Integration Tests
115132
command: docker exec -w /root/xdmod xdmod /root/xdmod/tests/integration/runtests.sh --junit-output-dir /root/phpunit
@@ -128,6 +145,23 @@ jobs:
128145
- run:
129146
name: Run Playwright Tests
130147
command: docker exec -w /root/xdmod/tests/playwright playwright /root/xdmod/tests/playwright/runtests.sh -j << parameters.string_os >>
148+
- when:
149+
condition:
150+
and:
151+
- equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
152+
- equal: [ "xdmod-time-trigger", << pipeline.schedule.name >> ]
153+
steps:
154+
- run:
155+
name: Process Code Coverage Data
156+
no_output_timeout: 120m
157+
command: docker exec -w /root/xdmod xdmod /root/xdmod/tools/dev/code_coverage/codeCoverageProcess.sh -i /root/code_coverage_raw
158+
- run:
159+
name: Tar Up Code Coverage Report for later download
160+
command: docker exec -it xdmod sh -c "tar -czvf ~/code_coverage/report.tgz ~/code_coverage_raw"
161+
- run:
162+
name: Copy Code Coverage Report to Host
163+
command: docker cp xdmod:/root/code_coverage ~/code_coverage
164+
131165
- run:
132166
name: Copy Test Results into Unit
133167
command: |
@@ -175,6 +209,16 @@ jobs:
175209
path: /root/xdmod/logs
176210
- store_test_results:
177211
path: ~/phpunit
212+
- when:
213+
condition:
214+
and:
215+
- equal: ["xdmod-time-trigger", << parameters.schedule-name >>]
216+
# and:
217+
# - equal: [ scheduled_pipeline, << pipeline.trigger_source >> ]
218+
# - equal: [ "xdmod-time-trigger", << pipeline.schedule.name >> ]
219+
steps:
220+
- store_artifacts:
221+
path: ~/code_coverage
178222

179223
workflows:
180224
full-build:
@@ -185,3 +229,4 @@ workflows:
185229
os: [rocky8]
186230
install-type: ["fresh_install", "upgrade"]
187231
string_os: [rocky8]
232+
schedule-name: ["xdmod-time-trigger"]

0 commit comments

Comments
 (0)