fix: raise auto-merge molecule wait to cover suite duration
CI / validate (pull_request) Successful in 1m39s
CI / molecule-tests (1) (pull_request) Skipped
CI / molecule-tests (2) (pull_request) Skipped
CI / molecule-tests (3) (pull_request) Skipped
CI / molecule-tests (4) (pull_request) Skipped
CI / auto-merge (pull_request) Successful in 1m24s
CI / validate (pull_request) Successful in 1m39s
CI / molecule-tests (1) (pull_request) Skipped
CI / molecule-tests (2) (pull_request) Skipped
CI / molecule-tests (3) (pull_request) Skipped
CI / molecule-tests (4) (pull_request) Skipped
CI / auto-merge (pull_request) Successful in 1m24s
auto-merge polls molecule-tests with MAX_WAIT=600 inside a timeout-minutes: 10 job, but the distributed molecule suite takes ~25 minutes — every synchronize run timed out and merges only succeeded via manual failed-job reruns. MAX_WAIT=2400 and timeout-minutes: 50 give the wait loop room to see molecule finish. Generated with [Devin](https://devin.ai) Co-Authored-By: Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
co-authored by
Devin <158243242+devin-ai-integration[bot]@users.noreply.github.com>
parent
f7948cace7
commit
2f4e4ac220
@@ -283,7 +283,7 @@ jobs:
|
|||||||
needs.validate.result == 'success'
|
needs.validate.result == 'success'
|
||||||
runs-on: docker
|
runs-on: docker
|
||||||
container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest
|
container: git.oblachno.oblachno.fyi/oblachno-oss/runner-images/ci-base:latest
|
||||||
timeout-minutes: 10
|
timeout-minutes: 50
|
||||||
defaults:
|
defaults:
|
||||||
run:
|
run:
|
||||||
shell: bash
|
shell: bash
|
||||||
@@ -321,7 +321,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
. .venv/bin/activate 2>/dev/null || true
|
. .venv/bin/activate 2>/dev/null || true
|
||||||
# Poll commit status until all required checks pass or fail
|
# Poll commit status until all required checks pass or fail
|
||||||
MAX_WAIT=600 # 10 minutes
|
MAX_WAIT=2400 # 40 minutes — covers the ~25-min molecule suite
|
||||||
ELAPSED=0
|
ELAPSED=0
|
||||||
while [ $ELAPSED -lt $MAX_WAIT ]; do
|
while [ $ELAPSED -lt $MAX_WAIT ]; do
|
||||||
STATUS=$(curl -s -H "Authorization: token $CI_GITEA_API_TOKEN" \
|
STATUS=$(curl -s -H "Authorization: token $CI_GITEA_API_TOKEN" \
|
||||||
|
|||||||
@@ -0,0 +1,48 @@
|
|||||||
|
# GRM-169: Fix auto-merge timeout — molecule wait exceeds 10-min job cap
|
||||||
|
|
||||||
|
## Problem
|
||||||
|
|
||||||
|
The `auto-merge` job in `ci.yml` polls molecule-tests status with
|
||||||
|
`MAX_WAIT=600` (10 minutes) inside a job capped at
|
||||||
|
`timeout-minutes: 10`. The molecule suite takes ~25 minutes under the
|
||||||
|
4-runner distribution. Result: every `pull_request` synchronize run of
|
||||||
|
auto-merge exhausts MAX_WAIT, prints `Timed out waiting for molecule
|
||||||
|
tests`, and fails — observed on PR #275 (run 5988) where all molecule
|
||||||
|
jobs were green but auto-merge died before they finished. The merge
|
||||||
|
only completed via a manual rerun-failed-jobs call after molecule was
|
||||||
|
already green.
|
||||||
|
|
||||||
|
## Approach
|
||||||
|
|
||||||
|
REQ-1: Raise the molecule wait budget in `.gitea/workflows/ci.yml` so it
|
||||||
|
exceeds the observed suite duration: `MAX_WAIT=2400` (40 minutes — ~1.6x
|
||||||
|
the observed 25-minute suite) and the job `timeout-minutes` to `50`
|
||||||
|
(wait budget plus setup/post overhead).
|
||||||
|
|
||||||
|
REQ-2: No other behavior changes — the wait loop, success/failure/skipped
|
||||||
|
classification, and merge semantics stay identical. The job still runs
|
||||||
|
on every pull_request event; it simply no longer aborts early.
|
||||||
|
|
||||||
|
## Test Plan
|
||||||
|
|
||||||
|
- `make workflow-lint` (actionlint) passes on the edited file.
|
||||||
|
- `make workflow-dryrun` where available.
|
||||||
|
- Next PR's auto-merge run waits past the 10-minute mark and merges
|
||||||
|
after molecule turns green (verified on a subsequent PR).
|
||||||
|
|
||||||
|
## Deploy Plan
|
||||||
|
|
||||||
|
Merge via auto-merge — ironically exercised by this very PR's auto-merge
|
||||||
|
run: it must wait for this PR's own molecule jobs, demonstrating the fix
|
||||||
|
in production immediately.
|
||||||
|
|
||||||
|
## Rollback Plan
|
||||||
|
|
||||||
|
Revert the two changed lines. Risk of keeping the fix: none — a longer
|
||||||
|
wait can only extend a job that was previously guaranteed to fail.
|
||||||
|
|
||||||
|
## Acceptance Criteria
|
||||||
|
|
||||||
|
- [x] `MAX_WAIT` raised to 2400 in the auto-merge wait loop.
|
||||||
|
- [x] `timeout-minutes` raised to 50 on the auto-merge job.
|
||||||
|
- [x] `make workflow-lint` passes.
|
||||||
Reference in New Issue
Block a user