@@ -301,6 +301,12 @@ rm -rf "$SCREENSHOT_OUTPUT_DIR"
301301mkdir -p " $SCREENSHOT_OUTPUT_DIR "
302302export CN1_TEST_SCREENSHOT_DIR=" $SCREENSHOT_OUTPUT_DIR "
303303
304+ FINAL_ARTIFACT_DIR=" ${CN1_TEST_SCREENSHOT_EXPORT_DIR:- $REPO_ROOT / build-artifacts} "
305+ mkdir -p " $FINAL_ARTIFACT_DIR "
306+ if [ -n " ${GITHUB_ENV:- } " ]; then
307+ printf ' CN1_UI_TEST_ARTIFACT_DIR=%s\n' " $FINAL_ARTIFACT_DIR " >> " $GITHUB_ENV "
308+ fi
309+
304310ba_log " Invoking Gradle build in $GRADLE_PROJECT_DIR "
305311chmod +x " $GRADLE_PROJECT_DIR /gradlew"
306312ORIGINAL_JAVA_HOME=" $JAVA_HOME "
@@ -326,26 +332,49 @@ else
326332 GRADLE_TEST_WRAPPER=(" ${GRADLE_TEST_CMD[@]} " )
327333fi
328334
335+ GRADLE_UI_TEST_LOG=" $GRADLE_PROJECT_DIR /gradle-ui-test.log"
336+ ba_log " Capturing Gradle UI test output to $GRADLE_UI_TEST_LOG "
337+ ba_log " Robolectric UI tests execute without launching an emulator; consult the captured log for lifecycle output"
338+
329339set +e
330340(
331341 cd " $GRADLE_PROJECT_DIR "
332- " ${GRADLE_TEST_WRAPPER[@]} "
342+ " ${GRADLE_TEST_WRAPPER[@]} " & > " $GRADLE_UI_TEST_LOG "
333343)
334344TEST_EXIT_CODE=$?
335345set -e
336346
347+ if [ -f " $GRADLE_UI_TEST_LOG " ]; then
348+ cp " $GRADLE_UI_TEST_LOG " " $FINAL_ARTIFACT_DIR /ui-test-gradle.log"
349+ ba_log " Gradle UI test log saved to $FINAL_ARTIFACT_DIR /ui-test-gradle.log"
350+ fi
351+
337352if [ " $TEST_EXIT_CODE " -eq 124 ]; then
338353 ba_log " Gradle UI tests exceeded ${UI_TEST_TIMEOUT_SECONDS} s timeout and were terminated"
339354fi
340355if [ " $TEST_EXIT_CODE " -ne 0 ]; then
341356 ba_log " Gradle UI tests exited with status $TEST_EXIT_CODE "
357+ if [ -s " $GRADLE_UI_TEST_LOG " ]; then
358+ ba_log " ----- Begin Gradle UI test log -----"
359+ sed ' s/^/[build-android-app] | /' " $GRADLE_UI_TEST_LOG "
360+ ba_log " ----- End Gradle UI test log -----"
361+ else
362+ ba_log " Gradle UI test log $GRADLE_UI_TEST_LOG was empty or missing"
363+ fi
342364 TEST_RESULTS_DIR=" $APP_MODULE_DIR /build/test-results/testDebugUnitTest"
343365 if [ -d " $TEST_RESULTS_DIR " ]; then
344366 ba_log " Available XML results under $TEST_RESULTS_DIR :"
345367 find " $TEST_RESULTS_DIR " -maxdepth 1 -type f -name ' *.xml' -print | sed ' s#^.*/##' | sed ' s/^/[build-android-app] /'
346368 else
347369 ba_log " No test result XML directory found at $TEST_RESULTS_DIR "
348370 fi
371+ shopt -s nullglob
372+ for ui_log in " $SCREENSHOT_OUTPUT_DIR " /* .log; do
373+ ba_log " ----- Begin UI test log: $( basename " $ui_log " ) -----"
374+ sed ' s/^/[build-android-app] | /' " $ui_log "
375+ ba_log " ----- End UI test log: $( basename " $ui_log " ) -----"
376+ done
377+ shopt -u nullglob
349378fi
350379
351380if [ " $TEST_EXIT_CODE " -eq 0 ]; then
@@ -364,15 +393,19 @@ if [ -z "$SCREENSHOT_FILE" ]; then
364393 ba_log " UI test completed but no screenshot was produced in $SCREENSHOT_OUTPUT_DIR " >&2
365394 SCREENSHOT_STATUS=1
366395else
367- FINAL_SCREENSHOT_DIR=" ${CN1_TEST_SCREENSHOT_EXPORT_DIR:- $REPO_ROOT / build-artifacts} "
368- mkdir -p " $FINAL_SCREENSHOT_DIR "
369- FINAL_SCREENSHOT=" $FINAL_SCREENSHOT_DIR /ui-test-screenshot.png"
396+ FINAL_SCREENSHOT=" $FINAL_ARTIFACT_DIR /ui-test-screenshot.png"
370397 cp " $SCREENSHOT_FILE " " $FINAL_SCREENSHOT "
371398 if [ -n " ${GITHUB_ENV:- } " ]; then
372399 printf ' CN1_UI_TEST_SCREENSHOT=%s\n' " $FINAL_SCREENSHOT " >> " $GITHUB_ENV "
373400 fi
374401 ba_log " UI test screenshot available at $FINAL_SCREENSHOT "
375402fi
403+ shopt -s nullglob
404+ for ui_log in " $SCREENSHOT_OUTPUT_DIR " /* .log; do
405+ cp " $ui_log " " $FINAL_ARTIFACT_DIR /$( basename " $ui_log " ) "
406+ ba_log " UI test log saved to $FINAL_ARTIFACT_DIR /$( basename " $ui_log " ) "
407+ done
408+ shopt -u nullglob
376409unset CN1_TEST_SCREENSHOT_DIR
377410
378411if [ " $TEST_EXIT_CODE " -ne 0 ]; then
385418
386419APK_PATH=$( find " $GRADLE_PROJECT_DIR " -path " */outputs/apk/debug/*.apk" | head -n 1 || true)
387420[ -n " $APK_PATH " ] || { ba_log " Gradle build completed but no APK was found" >&2 ; exit 1; }
388- ba_log " Successfully built Android APK at $APK_PATH "
421+ ba_log " Successfully built Android APK at $APK_PATH "
0 commit comments