From 7e5054d3b5788465e35add18262938a32ff121f9 Mon Sep 17 00:00:00 2001 From: Richard Pierre Date: Sat, 5 Sep 2026 23:31:13 -0400 Subject: [PATCH] docs(ci): the sweep converges in hours, not 15 minutes GitHub does not honour '*/15' in this org. Measured across 12 consecutive scheduled runs of homelab-stacks eir-windmill-sync (same cron, same org), the real interval was 98 to 287 minutes, median 135. The sweep is still a real backstop and the event path still handles the normal case immediately, but the comments claimed a 15-minute convergence that does not hold. Corrects them so nobody sizes a timeout or an alert against it. --- .github/workflows/automerge.yml | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/.github/workflows/automerge.yml b/.github/workflows/automerge.yml index f2c3ca6a..ed3bffcd 100644 --- a/.github/workflows/automerge.yml +++ b/.github/workflows/automerge.yml @@ -37,6 +37,12 @@ on: types: [completed] schedule: # Backstop only; the event path still handles the happy case immediately. + # Asks for every 15 minutes. GitHub does NOT honour that here: measured over + # 12 consecutive scheduled runs of homelab-stacks eir-windmill-sync (same + # cron, same org) the real interval was 98 to 287 minutes, median 135. So the + # sweep converges in hours, not minutes. That is still a real backstop (the + # previous behaviour was never), and the event path above still handles the + # normal case immediately, but do not document this as a 15-minute guarantee. - cron: '*/15 * * * *' workflow_dispatch: @@ -152,7 +158,8 @@ jobs: } else { // Not an error: failing checks, a conflict, or a required review. // No longer relies on a later event arriving; the sweep re-evaluates - // this PR within 15 minutes, so it cannot strand. + // this PR on the next scheduled run, so it cannot strand + // indefinitely. Expect hours, not minutes: see the cron note above. core.info(`#${n}: mergeStateStatus=${pr.mergeStateStatus}, leaving for the next sweep`); } } else {