87
87
uses : EnricoMi/publish-unit-test-result-action@v2
88
88
if : always()
89
89
with :
90
- files : " **/test-results/**/*.xml"
91
-
92
- android_test :
93
- runs-on : ubuntu-latest
94
-
95
- steps :
96
- - name : Checkout code
97
- uses : actions/checkout@v3
98
-
99
- - name : Get changed files
100
- id : changed_files
101
- uses : tj-actions/changed-files@v45
102
-
103
- - name : Filter out test files
104
- id : android_test_files
105
- run : |
106
- echo "Changed files: ${{ steps.changed_files.outputs.all_changed_files }}"
107
-
108
- ANDROID_TEST_FILES=$(echo "${{ steps.changed_files.outputs.all_changed_files }}" \
109
- | tr ' ' '\n' \
110
- | grep -E '^.+/src/androidTest/(java|kotlin)/.+\.(kt|java)$')
111
- echo "Filtered by grep: $ANDROID_TEST_FILES"
112
-
113
- ANDROID_TEST_FILES=$(echo "$ANDROID_TEST_FILES" \
114
- | sed -E 's/^(.+)\/src\/androidTest\/(java|kotlin)\/(.+)\.(kt|java)$/\1 \3/' \
115
- | sed 's/\//./g')
116
- echo "Processed by sed: $ANDROID_TEST_FILES"
117
-
118
- ANDROID_TEST_FILES_SINGLE_LINE=$(echo "$ANDROID_TEST_FILES" | tr '\n' ' ')
119
- echo "ANDROID_TEST_FILES=$ANDROID_TEST_FILES_SINGLE_LINE" >> $GITHUB_ENV
120
-
121
- echo "$ANDROID_TEST_FILES" > android_test_files.txt
122
-
123
- if [ -s android_test_files.txt ]; then
124
- echo "any_changed=true" >> $GITHUB_ENV
125
- else
126
- echo "any_changed=false" >> $GITHUB_ENV
127
- fi
128
-
129
- - name : Setup JDK
130
- if : env.any_changed == 'true'
131
- uses : actions/setup-java@v4
132
- with :
133
- distribution : ' corretto'
134
- java-version : ' 17'
135
-
136
- - name : Setup Android SDK
137
- if : env.any_changed == 'true'
138
- uses : android-actions/setup-android@v3
139
- with :
140
- api-level : 26
141
- target : ' default'
142
- emulator : true
143
-
144
- - name : Start Emulator
145
- if : env.any_changed == 'true'
146
- run : |
147
- adb devices
148
- adb shell input keyevent 82
149
- chmod +x gradlew
150
- cat android_test_files.txt | while IFS=$'\n' read -r LINE; do
151
- MODULE=$(echo "$LINE" | awk '{print $1}')
152
- TEST_CLASS=$(echo "$LINE" | awk '{print $2}')
153
-
154
- MODULE=$(echo "$MODULE" | sed 's|\.|:|g')
155
-
156
- echo "MODULE: $MODULE"
157
- echo "TEST_CLASS: $TEST_CLASS"
158
-
159
- echo "Running: ./gradlew :$MODULE:connectedAndroidTest --tests \"$TEST_CLASS\""
160
- ./gradlew :$MODULE:connectedAndroidTest --tests "$TEST_CLASS" --scan || exit 1
161
- done
90
+ files : " **/test-results/**/*.xml"
0 commit comments