diff --git a/.github/scripts/check_diff.py b/.github/scripts/check_diff.py index ee085f8cd9b..a18990235a4 100644 --- a/.github/scripts/check_diff.py +++ b/.github/scripts/check_diff.py @@ -127,7 +127,21 @@ def _get_configs_for_single_dir(job: str, dir_: str) -> List[Dict[str, str]]: return _get_pydantic_test_configs(dir_) if job == "codspeed": - py_versions = ["3.13"] + # CPU simulation (<1% variance, Valgrind-based) is the default. + # Partners with heavy SDK inits use walltime instead to keep CI fast. + CODSPEED_WALLTIME_DIRS = { + "libs/core", + "libs/partners/fireworks", # ~328s under simulation + "libs/partners/openai", # 6 benchmarks, ~6 min under simulation + } + mode = "walltime" if dir_ in CODSPEED_WALLTIME_DIRS else "simulation" + return [ + { + "working-directory": dir_, + "python-version": "3.13", + "codspeed-mode": mode, + } + ] elif dir_ == "libs/core": py_versions = ["3.10", "3.11", "3.12", "3.13", "3.14"] # custom logic for specific directories diff --git a/.github/workflows/check_diffs.yml b/.github/workflows/check_diffs.yml index 1d483349378..a86246f8378 100644 --- a/.github/workflows/check_diffs.yml +++ b/.github/workflows/check_diffs.yml @@ -236,7 +236,7 @@ jobs: else uv run --no-sync pytest ./tests/unit_tests/ -m benchmark --codspeed fi - mode: ${{ matrix.job-configs.working-directory == 'libs/core' && 'walltime' || 'simulation' }} + mode: ${{ matrix.job-configs.codspeed-mode }} # Final status check - ensures all required jobs passed before allowing merge ci_success: