55 branches : [ "master" ]
66
77 workflow_dispatch :
8+ inputs :
9+ suites :
10+ description : " Android test suites: all or comma-separated annotations/suites"
11+ required : false
12+ default : " all"
13+ type : string
814
915concurrency :
1016 group : ${{ github.workflow }}-${{ github.ref }}
8187
8288 - name : Run UI tests on Android Emulator
8389 uses : reactivecircus/android-emulator-runner@v2
90+ env :
91+ ANDROID_TEST_SUITES : ${{ github.event.inputs.suites || 'all' }}
8492 with :
8593 api-level : 30
8694 arch : x86_64
@@ -101,7 +109,41 @@ jobs:
101109
102110 # Install and run tests
103111 ./gradlew installDevDebug
104- ./gradlew connectedDevDebugAndroidTest
112+
113+ suites="${ANDROID_TEST_SUITES:-all}"
114+ suites="$(echo "$suites" | tr '[:upper:]' '[:lower:]' | tr -d '[:space:]')"
115+
116+ if [[ -z "$suites" || "$suites" == "all" ]]; then
117+ ./gradlew connectedDevDebugAndroidTest
118+ exit 0
119+ fi
120+
121+ IFS=',' read -ra requested_suites <<< "$suites"
122+ for suite in "${requested_suites[@]}"; do
123+ case "$suite" in
124+ compose|compose-ui|composeuitest|to.bitkit.test.annotations.composeuitest)
125+ task="connectedDevDebugComposeAndroidTest"
126+ ;;
127+ device|device-integration|deviceintegrationtest|to.bitkit.test.annotations.deviceintegrationtest)
128+ task="connectedDevDebugDeviceIntegrationAndroidTest"
129+ ;;
130+ core|core-service|coreserviceintegrationtest|to.bitkit.test.annotations.coreserviceintegrationtest)
131+ task="connectedDevDebugCoreServiceIntegrationAndroidTest"
132+ ;;
133+ storage|device-storage|devicestorageintegrationtest|to.bitkit.test.annotations.devicestorageintegrationtest)
134+ task="connectedDevDebugDeviceStorageIntegrationAndroidTest"
135+ ;;
136+ ui|device-ui|deviceuiintegrationtest|to.bitkit.test.annotations.deviceuiintegrationtest)
137+ task="connectedDevDebugDeviceUiIntegrationAndroidTest"
138+ ;;
139+ *)
140+ echo "::error::Unknown Android test suite '$suite'. Use all, compose, device-integration, core-service, device-storage, or device-ui."
141+ exit 1
142+ ;;
143+ esac
144+
145+ ./gradlew "$task"
146+ done
105147
106148 - name : Upload UI test report
107149 if : always()
0 commit comments