Skip to content

infra: add console log artifacts to all mobile integration test workflows#1714

Merged
tobi-legan merged 16 commits into
mainfrom
test/ios-cpp-log-capture
Apr 23, 2026
Merged

infra: add console log artifacts to all mobile integration test workflows#1714
tobi-legan merged 16 commits into
mainfrom
test/ios-cpp-log-capture

Conversation

@tobi-legan

@tobi-legan tobi-legan commented Apr 22, 2026

Copy link
Copy Markdown
Contributor

Summary

  • Adds a lightweight console log artifact to all 9 mobile integration test workflows, providing quick access to the key debugging files without downloading the full Device Farm logs (which can be 100MB+)
  • iOS console logs include bare_console.log (C++ native logs forwarded via Bare RPC) and appium.log
  • Android console logs include Logcat files (native C++ logs) and appium.log
  • Adds --max-time 300 to all curl commands in the Device Farm log download steps to prevent CI hangs
  • Renames the original upload step to "Upload Full Device Farm Logs" to distinguish from the new smaller "Upload Console Logs" step

Workflows updated

  • integration-mobile-test-qvac-lib-infer-llamacpp-llm.yml
  • integration-mobile-test-qvac-lib-infer-llamacpp-embed.yml
  • integration-mobile-test-qvac-lib-infer-nmtcpp.yml
  • integration-mobile-test-qvac-lib-infer-whispercpp.yml
  • integration-mobile-test-qvac-lib-infer-parakeet.yml
  • integration-mobile-test-qvac-lib-infer-onnx-tts.yml
  • integration-mobile-test-lib-infer-diffusion.yml
  • integration-mobile-test-qvac-lib-decoder-audio.yml
  • integration-mobile-test-ocr-onnx.yml

Test plan

  • Triggered all 9 on-pr-* workflows on this branch
  • All mobile integration test jobs passed (iOS + Android)
  • Console log artifacts produced for every addon, both platforms
  • Downloaded and verified bare_console.log contains real C++ native logs for all 9 iOS builds
  • Downloaded and verified Logcat files contain real Android system/native logs for all 9 Android builds
  • Downloaded and verified appium.log present in all artifacts
  • Full Device Farm logs still uploaded as separate artifact

Throwaway commit to validate C++ log capture on Device Farm.
Do NOT merge -- delete branch after verification.

Made-with: Cursor
Pull bare_console.log from the app's documents directory at the end
of each iOS test run and write it to $DEVICEFARM_LOG_DIR so it
appears in customer artifacts.

Throwaway -- delete branch after verification.

Made-with: Cursor
The Bare worklet flushes logs to disk on a 2s timer. Without a pause,
pullFile in the WDIO after hook could retrieve a stale file missing the
final log entries (inference completion, errors).
browser.pullFile returns base64 which WDIO debug-logs in full, bloating
the Appium output artifact. Replace with raw HTTP to Appium to bypass
WDIO command logging. Also add --max-time 300 to all curl commands in
the download steps as a safety net against any future hangs.
Wire up the same bare-log pullFile (via raw HTTP to bypass WDIO debug
log bloat) and 3s flush pause in the iOS WDIO after hooks for whisper,
NMT, parakeet, onnx-tts, and decoder-audio workflows. Also add
--max-time 300 to all curl commands in their download steps.
Add two-tier artifact downloads to all 9 mobile test workflows:
- "Console Logs" (small): bare_console.log (iOS C++ logs), test spec
  output, and logcat (Android) for quick debugging
- "Full Device Farm Logs" (big): all artifacts for deep investigation

Also adds bare_console.log capture to llamacpp-embed and diffusion
workflows, curl --max-time 300 safety net, and resets TEST_FRAMEWORK_REF
back to main now that qvac-test-addon-mobile#36 is merged.

Made-with: Cursor
…logs

Device Farm bundles $DEVICEFARM_LOG_DIR files into Customer_Artifacts.zip,
so bare_console.log was not appearing as a standalone file. The extract
step now unzips Customer_Artifacts.zip files and pulls bare_console.log
into the console-logs artifact with device-prefixed names.

Made-with: Cursor
Console logs artifact now contains only the essentials:
- bare_console.log (iOS C++ logs, extracted from Customer_Artifacts.zip)
- Logcat (Android native logs)
- appium.log (Appium server logs, extracted from Customer_Artifacts.zip)

Removed test spec output from console logs -- those stay in full logs.

Made-with: Cursor
…kflows

The sanity-checks job uses sparse-checkout but only included the package
directory. Custom actions (yamlfmt, run-lint-and-unit-tests) were missing
from the checkout, causing "Can't find action.yml" errors.

Made-with: Cursor
Device Farm zips nest files under Host_Machine_Files/$DEVICEFARM_LOG_DIR/
so flat path checks never found bare_console.log or appium.log.

Made-with: Cursor
Device Farm Customer_Artifacts.zip nests files under
Host_Machine_Files/$DEVICEFARM_LOG_DIR/ - use find to locate
bare_console.log and appium.log at any depth inside the zip.

Made-with: Cursor
@github-actions

github-actions Bot commented Apr 23, 2026

Copy link
Copy Markdown
Contributor

Tier-based Approval Status

**PR Tier:** TIER1

**Current Status:** ✅ APPROVED

**Requirements:**
- 1 Team Member approval ❌ (0/1)
- 1 Team Lead OR Management approval ✅ (2/1)

**Bypass rule:** Triggered (2+ Team Lead approvals (Tier 1 exception)). This PR is approved regardless of tier.

---
*This comment is automatically updated when reviews change.*

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - iOS

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: iOS
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: 37d2518

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - Android

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: Android
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: 37d2518

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - iOS

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: iOS
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: c321a4d

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - Android

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: Android
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: c321a4d

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - iOS

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: iOS
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: 48cba40

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

@github-actions

Copy link
Copy Markdown
Contributor

❌ E2E Mobile Test Results - Android

Overall Status: FAILED
Device Farm Result: UNKNOWN
Platform: Android
Addon: @qvac/translation-nmtcpp
PR: #1714
Commit: 48cba40

Test Summary

Metric Count
Total Tests 0
✅ Passed 0
❌ Failed 0
⏭️ Skipped 0

Links


Automated E2E mobile testing powered by AWS Device Farm
Tests located in: test/mobile/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants