ci: make Windows Stop Studio teardown tolerate Git Bash signal exit (#5460)

The Windows-runner "Stop Studio" step's kill + sleep block has
been observed to exit 143 (SIGTERM) even when the upstream test
work passed. Most recently caught on PR #5432 Job 3 "JSON, images":
all four assertions (json_object, plain inference, image/openai,
image/anthropic) printed PASS, then the kill step ran for ~2
seconds and exited 143, failing the job.

Teardown does not gate correctness. Wrap all three Stop Studio
steps with set +e + redirected error streams + explicit exit 0
so transient Git Bash signal weirdness no longer masks a green
test run.
This commit is contained in:
Daniel Han 2026-05-15 11:46:52 -07:00 committed by GitHub
commit ac3e9e98f2
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -345,9 +345,15 @@ jobs:
- name: Stop Studio
if: always()
# `set +e` + redirect everything: Git Bash on windows-latest
# has been observed to exit 143 from the kill/sleep block even
# when the upstream test work passed, masking a green run. The
# teardown does not gate correctness, so absorb any signal.
run: |
kill "${STUDIO_PID}" 2>/dev/null || true
sleep 2
set +e
kill "${STUDIO_PID}" >/dev/null 2>&1 || true
sleep 2 >/dev/null 2>&1 || true
exit 0
- name: Upload logs
if: always()
@ -762,9 +768,15 @@ jobs:
- name: Stop Studio
if: always()
# `set +e` + redirect everything: Git Bash on windows-latest
# has been observed to exit 143 from the kill/sleep block even
# when the upstream test work passed, masking a green run. The
# teardown does not gate correctness, so absorb any signal.
run: |
kill "${STUDIO_PID}" 2>/dev/null || true
sleep 2
set +e
kill "${STUDIO_PID}" >/dev/null 2>&1 || true
sleep 2 >/dev/null 2>&1 || true
exit 0
- name: Upload logs
if: always()
@ -1150,9 +1162,15 @@ jobs:
- name: Stop Studio
if: always()
# `set +e` + redirect everything: Git Bash on windows-latest
# has been observed to exit 143 from the kill/sleep block even
# when the upstream test work passed, masking a green run. The
# teardown does not gate correctness, so absorb any signal.
run: |
kill "${STUDIO_PID}" 2>/dev/null || true
sleep 2
set +e
kill "${STUDIO_PID}" >/dev/null 2>&1 || true
sleep 2 >/dev/null 2>&1 || true
exit 0
- name: Upload logs
if: always()