Skip to content

Commit 02beb1e

Browse files
committed
dataconnect.yml: more robustly kill async processes
1 parent 84d1f92 commit 02beb1e

File tree

1 file changed

+37
-19
lines changed

1 file changed

+37
-19
lines changed

.github/workflows/dataconnect.yml

Lines changed: 37 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,10 @@ jobs:
182182
${{ (inputs.gradleInfoLog && '--info') || '' }} \
183183
:firebase-dataconnect:connectors:runDebugDataConnectEmulator \
184184
>firebase.emulator.dataconnect.log 2>&1 &
185-
echo "FIREBASE_DATA_CONNECT_EMULATOR_PID=$!" >> "$GITHUB_OUTPUT"
185+
186+
readonly FIREBASE_DATA_CONNECT_EMULATOR_PID=$!
187+
echo "FIREBASE_DATA_CONNECT_EMULATOR_PID=$FIREBASE_DATA_CONNECT_EMULATOR_PID"
188+
echo "FIREBASE_DATA_CONNECT_EMULATOR_PID=$FIREBASE_DATA_CONNECT_EMULATOR_PID" >> "$GITHUB_ENV"
186189
187190
- name: Firebase Auth Emulator Start
188191
id: firebase-auth-emulator
@@ -191,7 +194,10 @@ jobs:
191194
set -x
192195
cd firebase-dataconnect/emulator
193196
${{ env.FDC_FIREBASE_COMMAND }} emulators:start --only=auth >firebase.emulator.auth.log 2>&1 &
194-
echo "FIREBASE_AUTH_EMULATOR_PID=$!" >> "$GITHUB_OUTPUT"
197+
198+
readonly FIREBASE_AUTH_EMULATOR_PID=$!
199+
echo "FIREBASE_AUTH_EMULATOR_PID=$FIREBASE_AUTH_EMULATOR_PID"
200+
echo "FIREBASE_AUTH_EMULATOR_PID=$FIREBASE_AUTH_EMULATOR_PID" >> "$GITHUB_ENV"
195201
196202
- name: Logcat Log Capture Start
197203
id: logcat-capture
@@ -200,8 +206,10 @@ jobs:
200206
set -euo pipefail
201207
set -v
202208
203-
"$ANDROID_HOME/platform-tools/adb" logcat >logcat.log &
204-
echo "LOGCAT_PID=$!" >> "$GITHUB_OUTPUT"
209+
"$ANDROID_HOME/platform-tools/adb" logcat >logcat.log 2>&1 &
210+
readonly LOGCAT_PID=$!
211+
echo "LOGCAT_PID=$LOGCAT_PID"
212+
echo "LOGCAT_PID=$LOGCAT_PID" >> "$GITHUB_ENV"
205213
206214
- name: Gradle connectedCheck
207215
id: connectedCheck
@@ -224,58 +232,68 @@ jobs:
224232
continue-on-error: true
225233
run: |
226234
set -euo pipefail
227-
set -v
228235
229-
kill -s SIGINT ${{ steps.logcat-capture.outputs.LOGCAT_PID }}
236+
echo "Sending SIGINT to logcat process $LOGCAT_PID"
237+
kill -s SIGINT "$LOGCAT_PID"
238+
230239
loop_count=0
231-
while kill -0 ${{ steps.logcat-capture.outputs.LOGCAT_PID }} ; do
240+
while kill -0 "$LOGCAT_PID" ; do
232241
loop_count=$((loop_count+1))
233242
if [[ $loop_count -eq 60 ]] ; then
234-
echo "ERROR: timeout waiting for logcat process to terminate" >&2
243+
echo "ERROR: timeout waiting for logcat process $LOGCAT_PID to terminate" >&2
235244
exit 1
236245
fi
237-
echo "Waiting for logcat process to terminate"
246+
247+
echo "Waiting for logcat process $LOGCAT_PID to terminate"
238248
sleep 1
239249
done
240250
251+
echo "logcat process $LOGCAT_PID has been successfully terminated"
252+
241253
- name: Firebase Auth Emulator Stop
242254
continue-on-error: true
243255
run: |
244256
set -euo pipefail
245-
set -v
246257
247-
kill -s SIGINT ${{ steps.firebase-auth-emulator.outputs.FIREBASE_AUTH_EMULATOR_PID }}
258+
echo "Sending SIGINT to Firebase Auth Emulator process $FIREBASE_AUTH_EMULATOR_PID"
259+
kill -s SIGINT "$FIREBASE_AUTH_EMULATOR_PID"
248260
249261
loop_count=0
250-
while kill -0 ${{ steps.firebase-auth-emulator.outputs.FIREBASE_AUTH_EMULATOR_PID }} ; do
262+
while kill -0 "$FIREBASE_AUTH_EMULATOR_PID" ; do
251263
loop_count=$((loop_count+1))
252264
if [[ $loop_count -eq 60 ]] ; then
253-
echo "ERROR: timeout waiting for Firebase Auth Emulator process to terminate" >&2
265+
echo "ERROR: timeout waiting for Firebase Auth Emulator process $FIREBASE_AUTH_EMULATOR_PID to terminate" >&2
254266
exit 1
255267
fi
256-
echo "Waiting for Firebase Auth Emulator process to terminate"
268+
269+
echo "Waiting for Firebase Auth Emulator process $FIREBASE_AUTH_EMULATOR_PID to terminate"
257270
sleep 1
258271
done
259272
273+
echo "Firebase Auth Emulator process $FIREBASE_AUTH_EMULATOR_PID has been successfully terminated"
274+
260275
- name: Data Connect Emulator Stop
261276
continue-on-error: true
262277
run: |
263278
set -euo pipefail
264-
set -v
265279
266-
kill -s SIGINT ${{ steps.data-connect-emulator.outputs.FIREBASE_DATA_CONNECT_EMULATOR_PID }}
280+
echo "Sending SIGINT to Firebase Data Connect Emulator process $FIREBASE_DATA_CONNECT_EMULATOR_PID"
281+
kill -s SIGINT "$FIREBASE_DATA_CONNECT_EMULATOR_PID"
267282
268283
loop_count=0
269-
while kill -0 ${{ steps.data-connect-emulator.outputs.FIREBASE_DATA_CONNECT_EMULATOR_PID }} ; do
284+
while kill -0 "$FIREBASE_DATA_CONNECT_EMULATOR_PID" ; do
270285
loop_count=$((loop_count+1))
271286
if [[ $loop_count -eq 60 ]] ; then
272-
echo "ERROR: timeout waiting for Firebase Data Connect Emulator process to terminate" >&2
287+
echo "ERROR: timeout waiting for Firebase Data Connect Emulator process $FIREBASE_DATA_CONNECT_EMULATOR_PID to terminate" >&2
273288
exit 1
274289
fi
275-
echo "Waiting for Firebase Data Connect Emulator process to terminate"
290+
291+
echo "Waiting for Firebase Data Connect Emulator process $FIREBASE_DATA_CONNECT_EMULATOR_PID to terminate"
276292
sleep 1
277293
done
278294
295+
echo "Firebase Data Connect Emulator process $FIREBASE_DATA_CONNECT_EMULATOR_PID has been successfully terminated"
296+
279297
- name: Upload Log Files
280298
uses: actions/upload-artifact@4cec3d8aa04e39d1a68397de0c4cd6fb9dce8ec1 # v4.6.1
281299
with:

0 commit comments

Comments
 (0)