CI experiment

Change-Id: I7e7657ab34832d5988ebbe6af0d5464e9b4364ff
ja/edge-to-edge-dropshots
Jose Alcérreca 6 months ago
parent bf82765616
commit 9a436211b5

@ -310,7 +310,7 @@ jobs:
- name: Build projects and run instrumented screenshot tests - name: Build projects and run instrumented screenshot tests
id: dropshotsverify id: dropshotsverify
continue-on-error: true continue-on-error: false
uses: reactivecircus/android-emulator-runner@v2 uses: reactivecircus/android-emulator-runner@v2
with: with:
api-level: ${{ matrix.api-level }} api-level: ${{ matrix.api-level }}
@ -323,11 +323,12 @@ jobs:
emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none emulator-options: -no-snapshot-save -no-window -gpu swiftshader_indirect -noaudio -no-boot-anim -camera-back none
# Run tests, if they fail, record screenshots and exit with a failure # Run tests, if they fail, record screenshots and exit with a failure
script: > script: >
set +o pipefail &&
./gradlew connectedDemoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.annotation=com.google.samples.apps.nowinandroid.ui.InstrumentedScreenshotTests --daemon ./gradlew connectedDemoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.annotation=com.google.samples.apps.nowinandroid.ui.InstrumentedScreenshotTests --daemon
|| echo "Recording new screenshots" || echo "Recording new screenshots"
; ./gradlew connectedDemoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.annotation=com.google.samples.apps.nowinandroid.ui.InstrumentedScreenshotTests -Pdropshots.record --daemon --stacktrace ; ./gradlew connectedDemoDebugAndroidTest -Pandroid.testInstrumentationRunnerArguments.annotation=com.google.samples.apps.nowinandroid.ui.InstrumentedScreenshotTests -Pdropshots.record --daemon --stacktrace
; echo "Done recording new screenshots, exiting with failure" ; echo "Done recording new screenshots, exiting with failure"
; exit 5 ; echo ::set-output name=newgoldens::true
- name: Prevent pushing new screenshots if this is a fork - name: Prevent pushing new screenshots if this is a fork
id: checkfork_screenshots_instrumented id: checkfork_screenshots_instrumented
@ -338,12 +339,13 @@ jobs:
- name: Checkout new changes (in case another job already uploaded screenshots) - name: Checkout new changes (in case another job already uploaded screenshots)
uses: actions/checkout@v4 uses: actions/checkout@v4
if: steps.dropshotsverify.outputs.newgoldens == 'true'
with: with:
clean: false clean: false
- name: Push new device screenshots if available - name: Push new device screenshots if available
uses: stefanzweifel/git-auto-commit-action@4b8a201e31cadd9829df349894b28c54e6c19fe6 uses: stefanzweifel/git-auto-commit-action@4b8a201e31cadd9829df349894b28c54e6c19fe6
if: steps.dropshotsverify.outcome == 'failure' if: steps.dropshotsverify.outputs.newgoldens == 'true'
with: with:
file_pattern: 'app/src/androidTest/screenshots/*.png' file_pattern: 'app/src/androidTest/screenshots/*.png'
disable_globbing: true disable_globbing: true

@ -17,6 +17,7 @@
package com.google.samples.apps.nowinandroid.ui package com.google.samples.apps.nowinandroid.ui
import android.graphics.Bitmap import android.graphics.Bitmap
import android.util.Log
import androidx.test.core.app.takeScreenshot import androidx.test.core.app.takeScreenshot
import androidx.test.espresso.device.DeviceInteraction.Companion.setClosedMode import androidx.test.espresso.device.DeviceInteraction.Companion.setClosedMode
import androidx.test.espresso.device.DeviceInteraction.Companion.setFlatMode import androidx.test.espresso.device.DeviceInteraction.Companion.setFlatMode
@ -251,6 +252,7 @@ class EdgeToEdgeTest {
} catch (e: AssertionError) { } catch (e: AssertionError) {
if (count == 0) throw e if (count == 0) throw e
count -= 1 count -= 1
Log.i("EdgeToEdgeTest", "Test failed, retrying (count=$count)")
waitForWindowUpdate() waitForWindowUpdate()
} }
} }

Loading…
Cancel
Save