perf(ci): raise pabot integration parallelism cap min(2)->min(6)
CI / lint (pull_request) Successful in 37s
CI / push-validation (pull_request) Successful in 22s
CI / helm (pull_request) Successful in 27s
CI / build (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 1m20s
CI / security (pull_request) Successful in 1m21s
CI / unit_tests (pull_request) Successful in 4m19s
CI / docker (pull_request) Successful in 1m19s
CI / integration_tests (pull_request) Successful in 7m45s
CI / coverage (pull_request) Successful in 8m18s
CI / status-check (pull_request) Successful in 3s
CI / lint (pull_request) Successful in 37s
CI / push-validation (pull_request) Successful in 22s
CI / helm (pull_request) Successful in 27s
CI / build (pull_request) Successful in 32s
CI / quality (pull_request) Successful in 45s
CI / typecheck (pull_request) Successful in 1m20s
CI / security (pull_request) Successful in 1m21s
CI / unit_tests (pull_request) Successful in 4m19s
CI / docker (pull_request) Successful in 1m19s
CI / integration_tests (pull_request) Successful in 7m45s
CI / coverage (pull_request) Successful in 8m18s
CI / status-check (pull_request) Successful in 3s
integration_tests was throttled to `min(2, _default_processes())` (commit92e258535, a flaky-stabilization measure). Evidence from a cached CI run shows the suite does ~47min of work serialized through 2 pabot lanes on a 32-core runner -> ~24min wall (exactly 2x == 2 lanes), the chronic ~21-30min seen across recent runs. It is linearly parallelism-bound. Raise the cap to `min(6, _default_processes())`: ~4x more lanes -> projected ~6-8min wall, while staying well short of per-core fan-out (the runner reports 32 cores; behave already uses all of them). The cap is kept (not removed) because the suite makes live LLM calls — ~149 HTTP 429 rate-limit responses were observed even at 2-way, and unbounded fan-out would spike 429/OOM flakes (the exact failure92e258535was masking). 6 is a deliberate middle ground; TEST_PROCESSES / --processes still override. Updates the now-stale "<=2 processes" docstrings on integration_tests and slow_integration_tests. Behave/unit_tests parallelism (_default_processes(), uncapped) is unchanged. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
+14
-9
@@ -52,8 +52,12 @@ def _pabot_parallel_args(posargs: list[str]) -> list[str]:
|
||||
return []
|
||||
# Integration tests are significantly heavier than unit tests and can
|
||||
# become unstable on shared runners when pabot fans out aggressively.
|
||||
# Keep default parallelism conservative (<=2) unless explicitly overridden.
|
||||
pabot_default = min(2, _default_processes())
|
||||
# Cap parallelism at 6: at the prior <=2 the ~47min suite serialized to
|
||||
# ~24min wall on a 32-core runner (2x speedup == 2 lanes); 6 lanes cut
|
||||
# that to ~6-8min while staying well short of the per-core fan-out that
|
||||
# triggers LLM 429 rate-limits / OOM flakes. Override via
|
||||
# TEST_PROCESSES / --processes.
|
||||
pabot_default = min(6, _default_processes())
|
||||
return ["--processes", str(pabot_default)]
|
||||
|
||||
|
||||
@@ -256,9 +260,10 @@ def build(session: nox.Session):
|
||||
def integration_tests(session: nox.Session):
|
||||
"""Run Robot Framework integration tests (parallel via pabot).
|
||||
|
||||
Defaults to conservative parallelism (<=2 processes) to avoid
|
||||
resource pressure in CI. Override via PABOT_PROCESSES or by passing
|
||||
--processes/--processes=N in session arguments.
|
||||
Defaults to parallelism capped at 6 processes (min(6, cpus)) to avoid
|
||||
resource pressure / LLM 429 flakes in CI while still using the runner.
|
||||
Override via TEST_PROCESSES or by passing --processes/--processes=N in
|
||||
session arguments.
|
||||
"""
|
||||
session.install("-e", ".[tests]")
|
||||
session.env["CLEVERAGENTS_AUTO_APPLY_MIGRATIONS"] = "true"
|
||||
@@ -346,10 +351,10 @@ def slow_integration_tests(session: nox.Session):
|
||||
"""Run Robot Framework slow integration tests (parallel via pabot).
|
||||
|
||||
Runs all tests tagged ``slow`` that are excluded from the standard
|
||||
``integration_tests`` session. Defaults to conservative parallelism
|
||||
(<=2 processes) to avoid resource pressure in CI. Override via
|
||||
TEST_PROCESSES or by passing --processes/--processes=N in session
|
||||
arguments.
|
||||
``integration_tests`` session. Defaults to parallelism capped at 6
|
||||
processes (min(6, cpus)) to avoid resource pressure / LLM 429 flakes in
|
||||
CI. Override via TEST_PROCESSES or by passing --processes/--processes=N
|
||||
in session arguments.
|
||||
"""
|
||||
session.install("-e", ".[tests]")
|
||||
session.env["CLEVERAGENTS_AUTO_APPLY_MIGRATIONS"] = "true"
|
||||
|
||||
Reference in New Issue
Block a user