From ba5470f796cce4f0fa631bc29a5e0ff62bd7b065 Mon Sep 17 00:00:00 2001 From: Molecule AI Core-DevOps Date: Fri, 15 May 2026 07:06:08 +0000 Subject: [PATCH] infra(ci): apply golangci-lint --no-config fix to staging (mc#1099) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Staging's ci.yml still has `golangci-lint --timeout 3m` without --no-config, so the 3m ceiling from `.golangci.yaml timeout: 3m` is still active. Cold Gitea act-runners take ~4-7 minutes for golangci-lint on a fresh module cache, causing Platform (Go) to fail just under the 20m ceiling. Changes (mirrors PR #1132 on main): - --no-config bypasses .golangci.yaml ceiling so --timeout takes effect - --timeout 3m → 10m (the active constraint instead of 3m config) - job ceiling 15m → 50m (backstop: 10m lint + 15m diagnostic + 20m test suite on cold runner) - diagnostic step: if: always() → if: success() (skip on lint fail, avoid double-runtime) - diagnostic test timeout 60s → 600s mc#1099 Co-Authored-By: Claude Opus 4.7 --- .gitea/workflows/ci.yml | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/.gitea/workflows/ci.yml b/.gitea/workflows/ci.yml index 8438221b..e1704e9d 100644 --- a/.gitea/workflows/ci.yml +++ b/.gitea/workflows/ci.yml @@ -147,8 +147,10 @@ jobs: continue-on-error: false # Job-level ceiling. The go test step below runs with a per-step 10m timeout; # this cap catches any step that leaks past that. Set well above 10m so - # the per-step timeout is the active constraint. - timeout-minutes: 15 + # the per-step timeout is the active constraint. Raised from 15m to 50m + # to account for golangci-lint taking ~10m on cold runners (--no-config) + # plus ~25m for diagnostic + test suite on cold runner (mc#1099). + timeout-minutes: 50 defaults: run: working-directory: workspace-server @@ -174,14 +176,16 @@ jobs: run: go install github.com/golangci/golangci-lint/v2/cmd/golangci-lint@v2.12.2 - if: always() name: Run golangci-lint - run: $(go env GOPATH)/bin/golangci-lint run --timeout 3m ./... - - if: always() - name: Diagnostic — per-package verbose 60s + # mc#1099: --no-config bypasses .golangci.yaml ceiling; --timeout 10m + # is now the active constraint instead of the 3m config ceiling. + run: $(go env GOPATH)/bin/golangci-lint run --no-config --timeout 10m ./... + - if: success() + name: Diagnostic — per-package verbose 600s run: | set +e - go test -race -v -timeout 60s ./internal/handlers/... 2>&1 | tee /tmp/test-handlers.log + go test -race -v -timeout 600s ./internal/handlers/... 2>&1 | tee /tmp/test-handlers.log handlers_exit=$? - go test -race -v -timeout 60s ./internal/pendinguploads/... 2>&1 | tee /tmp/test-pu.log + go test -race -v -timeout 600s ./internal/pendinguploads/... 2>&1 | tee /tmp/test-pu.log pu_exit=$? echo "::group::handlers exit=$handlers_exit (last 100 lines)" tail -100 /tmp/test-handlers.log -- 2.52.0