From 0a1426e3115ab6707d32bf90c923649e4a2a1c62 Mon Sep 17 00:00:00 2001 From: "Molecule AI Dev Engineer A (Kimi)" Date: Wed, 27 May 2026 12:44:26 +0000 Subject: [PATCH] fix(ci): remove -race from blocking Platform (Go) gate, add advisory race step (#1184) Cold runners compile race-instrumented code in 13-25 min, exceeding the 10m step timeout and causing false failures on unrelated PRs. The blocking gate now runs without -race (reliable on cold runners), while a new non-blocking advisory step still surfaces race conditions on every PR without blocking merge. Fixes #1184 --- .gitea/workflows/ci.yml | 20 ++++++++++++++------ 1 file changed, 14 insertions(+), 6 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 2c889f832..fff399810 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -164,12 +164,20 @@ jobs: # mc#774: pre-existing continue-on-error mask; root-fix and remove, do not renew silently. continue-on-error: true - if: ${{ needs.changes.outputs.platform == 'true' }} - name: Run tests with race detection and coverage - # Explicit timeout: cold runner cache causes OOM kills at ~4m39s on the - # full ./... suite with race detection + coverage. A 10m per-step timeout - # lets the suite complete on cold cache (~5-7m) while failing cleanly - # instead of OOM-killing. The job-level timeout (15m) is a backstop. - run: go test -race -timeout 10m -coverprofile=coverage.out ./... + name: Run tests with coverage (blocking gate) + # Removed -race from the blocking gate per #1184: cold runners + # take 13-25 min to compile with race instrumentation, exceeding + # the 10m step timeout and causing false failures. Race detection + # now runs as a non-blocking advisory step below. + run: go test -timeout 10m -coverprofile=coverage.out ./... + + - if: ${{ needs.changes.outputs.platform == 'true' }} + name: Race detection (advisory, non-blocking) + # mc#1184: runs race detector as an advisory check so cold-runner + # compile-time spikes don't block merges. Failures here surface in + # the run log but do not fail the build. + run: go test -race -timeout 10m ./... + continue-on-error: true - if: ${{ needs.changes.outputs.platform == 'true' }} name: Per-file coverage report -- 2.52.0