From 981dc9c367077f25da2da60a38c4703cd76f314e Mon Sep 17 00:00:00 2001 From: PRATHAMESH75 Date: Wed, 9 Sep 2026 04:12:20 +0530 Subject: [PATCH] ci(lint): bound the advisory public-surface step so it can't time out the blocking footguns job (#106103) The 'Public-surface diff vs base (advisory)' step already carries continue-on-error: true, so its own failure never fails the Windows-footguns job. But continue-on-error does not shield the job-level timeout-minutes: 5: when the deepen/fetch loop runs long (a distant or missing merge-base), the step eats the whole job budget and the job is cancelled at ~5m even though the blocking footgun/compat checks passed and the public-surface check is advisory. Give the advisory step its own timeout-minutes: 2. A step overrun is then killed and, via continue-on-error, kept off the job outcome the same way a step failure already is, so the blocking job can finish under its budget. Fixes #106103. --- .github/workflows/lint.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 6b4023ebe5..68db16f230 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -193,6 +193,11 @@ jobs: - name: Public-surface diff vs base (advisory) if: github.event_name == 'pull_request' continue-on-error: true + # Bound the advisory step so a long deepen/fetch (e.g. a distant or missing + # merge-base) can't consume the blocking job's 5-minute budget and cancel it. + # continue-on-error already keeps a step *failure* off the job; a step-level + # timeout keeps a step *overrun* off the job-level timeout the same way. + timeout-minutes: 2 run: | git fetch --no-tags --deepen=200 origin "${{ github.base_ref }}" HEAD for i in 1 2 3; do