Skip to content

Commit c3c3e36

Browse files
thymikeeclaude
andauthored
ci(conformance): keep engine diagnostics from the iOS differential (#4016)
* ci(conformance): keep engine diagnostics from the iOS differential The nightly lane uploads only the report and replay traces, so the intermittent launchApp clearState "xcrun timed out after 15000ms" (10-11, 10-17, 10-27) and Maestro's driver startup timeout (10-27) left no evidence of which call stalled. Trace every host subprocess and upload the daemon/session diagnostics and Maestro's per-run log through the shared upload action. Refs #3944 Co-Authored-By: Claude Opus 5.5 <[email protected]> * ci(conformance): note which upload step keeps which evidence Co-Authored-By: Claude Opus 5.5 <[email protected]> --------- Co-authored-by: Claude Opus 5.5 <[email protected]>
1 parent 8dc9be8 commit c3c3e36

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

‎.github/workflows/conformance-differential.yml‎

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,11 @@ jobs:
5252
AGENT_DEVICE_XCUITEST_ARCHS: 'arm64'
5353
AGENT_DEVICE_STATE_DIR: ${{ github.workspace }}/.tmp/agent-device-state
5454
AGENT_DEVICE_IOS_RUNNER_DERIVED_PATH: ${{ github.workspace }}/.tmp/ios-runner-derived
55+
# A bounded simctl call that times out (e.g. the launchApp clearState
56+
# terminate, #3944) reports only "xcrun timed out". The exec trace keeps
57+
# every host subprocess's spawn, deadline, exit and close in the session
58+
# diagnostics, so the uploaded run shows which call stalled and for how long.
59+
AGENT_DEVICE_EXEC_TRACE: '1'
5560
steps:
5661
- name: Checkout
5762
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2
@@ -171,3 +176,18 @@ jobs:
171176
.tmp/conformance-differential/differential-report.json
172177
.agent-device/**/replay-timing.ndjson
173178
if-no-files-found: ignore
179+
180+
# An infrastructure failure on either engine leaves its evidence outside
181+
# the report: agent-device's daemon and session diagnostics, and Maestro's
182+
# own per-run log (e.g. its driver startup timeout). The step above keeps
183+
# the report and replay-timing.ndjson, which the invariants are computed
184+
# from; this one keeps the daemon's sessions/** with the exec trace.
185+
- name: Upload engine diagnostics
186+
if: always()
187+
uses: ./.github/actions/upload-agent-device-artifacts
188+
with:
189+
artifact-name: conformance-differential-ios-diagnostics
190+
agent-state-dir: ${{ env.AGENT_DEVICE_STATE_DIR }}
191+
runner-derived-path: ${{ env.AGENT_DEVICE_IOS_RUNNER_DERIVED_PATH }}
192+
additional-paths: |
193+
~/.maestro/tests/**

0 commit comments

Comments
 (0)