From 8a3f0c08705f80f988918bded90b0893fe5d2de5 Mon Sep 17 00:00:00 2001 From: Henry Park Date: Mon, 9 Mar 2026 15:55:32 -0700 Subject: [PATCH] fix(ci): 20-min polling + timeout-minutes on gate job [skip-regression-check] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Set polling timeout to 20 min (down from 30) - Add timeout-minutes: 25 on gate job for hard kill on cancel - Revert 1s sleep loop to sleep $INTERVAL (1s loop doesn't help with cancellation — GitHub only cancels between steps) Co-Authored-By: Claude Sonnet 4.6 --- .github/workflows/staging-ci.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/staging-ci.yml b/.github/workflows/staging-ci.yml index 6164424a..2348d6dc 100644 --- a/.github/workflows/staging-ci.yml +++ b/.github/workflows/staging-ci.yml @@ -218,6 +218,7 @@ jobs: needs.e2e.result == 'success' && needs.create-promotion-pr.result == 'success' runs-on: ubuntu-latest + timeout-minutes: 25 outputs: gate_passed: ${{ steps.evaluate.outputs.passed }} steps: @@ -261,7 +262,7 @@ jobs: fi echo "Polling for Claude Code Review job on PR #${PR_NUMBER} (SHA: ${PR_SHA})..." - TIMEOUT=1800 # 30 minutes + TIMEOUT=1200 # 20 minutes ELAPSED=0 INTERVAL=30 @@ -275,8 +276,7 @@ jobs: fi echo "Claude review status: ${STATUS} (${ELAPSED}s elapsed)" - # Sleep in 1s increments so GitHub can cancel between iterations - for _i in $(seq 1 "$INTERVAL"); do sleep 1; done + sleep "$INTERVAL" ELAPSED=$((ELAPSED + INTERVAL)) done