@@ -101,6 +101,18 @@ jobs:
101101 fail-fast : false
102102 matrix : ${{fromJson(needs.matrix_prep.outputs.matrix)}}
103103 steps :
104+ - name : Setup Environment for Screen Recording
105+ uses : guidepup/setup-action@0.17.3
106+ with :
107+ record : true
108+
109+ - name : Upload Screen Recording Environment Setup
110+ uses : actions/upload-artifact@v4
111+ if : always()
112+ with :
113+ name : screenrecording-setup-${{ matrix.buildmode }}-${{ matrix.iteration }}.mov
114+ path : ./recordings/
115+
104116 # Set up tool versions
105117 - uses : actions/setup-node@v4
106118 with :
@@ -256,10 +268,13 @@ jobs:
256268 curl --output /dev/null --silent --head --fail "http://localhost:8081/index.bundle?platform=ios&dev=true&minify=false&inlineSourceMap=true"
257269 echo "...javascript bundle ready"
258270
259- - name : Record App Video
271+ - name : Start Screen and Simulator Recordings and System Logging
260272 # With a little delay so the detox test below has time to spawn it, missing the first part of boot is fine
261273 continue-on-error : true
262- run : nohup sh -c "sleep 110 && xcrun simctl io booted recordVideo --codec=h264 -f simulator.mp4 2>&1 &"
274+ run : |
275+ nohup sh -c "sleep 314159265 | screencapture -v -C -k -T0 -g screenrecording.mov > screenrecording.log 2>&1 &"
276+ nohup sh -c "log stream --backtrace --color none --style syslog > syslog.log 2>&1 &"
277+ nohup sh -c "sleep 110 && xcrun simctl io booted recordVideo --codec=h264 -f simulator.mp4 2>&1 &"
263278
264279 - name : Create Simulator Log
265280 # With a little delay so the detox test below has time to spawn it, missing the first part of boot is fine
@@ -277,10 +292,13 @@ jobs:
277292 timeout-minutes : 50
278293 run : yarn tests:ios:test:release
279294
280- - name : Stop App Video
295+ - name : Stop Screen and App Video and System Logging
281296 if : always()
282297 continue-on-error : true
283- run : killall -INT simctl
298+ run : |
299+ killall -int simctl
300+ killall -int screencapture
301+ killall -int log
284302
285303 - name : Upload App Video
286304 uses : actions/upload-artifact@v4
@@ -292,12 +310,22 @@ jobs:
292310
293311 - name : Upload Simulator Log
294312 uses : actions/upload-artifact@v4
313+ continue-on-error : true
295314 if : always()
296315 with :
297316 name : simulator-${{ matrix.buildmode }}-${{ matrix.iteration }}_log
298317 path : simulator.log
299318
319+ - name : Upload Screen Recording
320+ uses : actions/upload-artifact@v4
321+ continue-on-error : true
322+ if : always()
323+ with :
324+ name : screenrecording-${{ matrix.buildmode }}-${{ matrix.iteration }}
325+ path : screenrecording.*
326+
300327 - uses : codecov/codecov-action@v5
301328 if : contains(matrix.buildmode, 'debug')
329+ continue-on-error : true
302330 with :
303331 verbose : true
0 commit comments