[CI] Skip worker-dependent SMG e2e tests pending runner-image debug (#24166)
Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.7
parent
5f88c8593a
commit
cf346bb15d
@@ -5,11 +5,17 @@ on:
|
||||
branches: [ main ]
|
||||
paths:
|
||||
- "sgl-model-gateway/**"
|
||||
- ".github/workflows/pr-test-rust.yml"
|
||||
- "scripts/ci/cuda/ci_install_dependency.sh"
|
||||
- "scripts/ci/cuda/ci_install_gateway_dependencies.sh"
|
||||
pull_request:
|
||||
branches: [ main ]
|
||||
types: [opened, synchronize, reopened, labeled]
|
||||
paths:
|
||||
- "sgl-model-gateway/**"
|
||||
- ".github/workflows/pr-test-rust.yml"
|
||||
- "scripts/ci/cuda/ci_install_dependency.sh"
|
||||
- "scripts/ci/cuda/ci_install_gateway_dependencies.sh"
|
||||
workflow_dispatch:
|
||||
|
||||
concurrency:
|
||||
@@ -344,7 +350,11 @@ jobs:
|
||||
summarize-benchmarks:
|
||||
needs: gateway-e2e
|
||||
runs-on: ubuntu-latest
|
||||
if: success()
|
||||
# Disabled while e2e tests are skipped in
|
||||
# sgl-model-gateway/e2e_test/fixtures/hooks.py — no benchmarks run, so the
|
||||
# genai-bench-results-all-policies artifact is never produced and the
|
||||
# download step would fail. Re-enable together with the skip removal.
|
||||
if: false
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
|
||||
@@ -649,7 +649,10 @@ def _install_sglang_stubs(monkeypatch):
|
||||
entry_mod = types.ModuleType("sglang.srt.entrypoints")
|
||||
http_server_mod = types.ModuleType("sglang.srt.entrypoints.http_server")
|
||||
server_args_mod = types.ModuleType("sglang.srt.server_args")
|
||||
# sglang.srt.utils was refactored from a module into a package; launch_server.py
|
||||
# imports from sglang.srt.utils.network, so the stub must model the submodule.
|
||||
utils_mod = types.ModuleType("sglang.srt.utils")
|
||||
network_mod = types.ModuleType("sglang.srt.utils.network")
|
||||
|
||||
def launch_server(_args):
|
||||
return None
|
||||
@@ -684,7 +687,8 @@ def _install_sglang_stubs(monkeypatch):
|
||||
|
||||
http_server_mod.launch_server = launch_server
|
||||
server_args_mod.ServerArgs = ServerArgs
|
||||
utils_mod.is_port_available = is_port_available
|
||||
network_mod.is_port_available = is_port_available
|
||||
utils_mod.network = network_mod
|
||||
|
||||
# Also stub external deps imported at module top-level
|
||||
def _dummy_get(*_a, **_k):
|
||||
@@ -706,6 +710,7 @@ def _install_sglang_stubs(monkeypatch):
|
||||
)
|
||||
monkeypatch.setitem(sys.modules, "sglang.srt.server_args", server_args_mod)
|
||||
monkeypatch.setitem(sys.modules, "sglang.srt.utils", utils_mod)
|
||||
monkeypatch.setitem(sys.modules, "sglang.srt.utils.network", network_mod)
|
||||
|
||||
|
||||
def test_router_defaults_and_start(monkeypatch):
|
||||
|
||||
@@ -233,6 +233,37 @@ def pytest_collection_modifyitems(
|
||||
else:
|
||||
logger.info("Scanned worker requirements: (none)")
|
||||
|
||||
# TEMPORARY: skip every test that would launch an sglang worker subprocess.
|
||||
#
|
||||
# Workers crash at import inside transformers.integrations.hub_kernels →
|
||||
# kernels.deps with:
|
||||
# StrictDataclassFieldValidationError: Validation error for field
|
||||
# 'import_name': TypeError: Unsupported type for field 'import_name': str | None
|
||||
#
|
||||
# The package combo (kernels==0.13.0 + huggingface_hub==1.12.2 +
|
||||
# transformers==5.6.0) is NOT the bug — it imports cleanly in fresh
|
||||
# python:3.10-slim and lmsysorg/sglang:dev containers. The crash is specific
|
||||
# to the 4-gpu-a10 runner image (most likely a stale/partial huggingface_hub
|
||||
# install where _BASIC_TYPE_VALIDATORS[types.UnionType] registration is
|
||||
# missing). Remove this skip once the runner image is rebuilt.
|
||||
#
|
||||
# Filter on `model_pool` in fixturenames (covers setup_backend, model_client,
|
||||
# model_base_url, backend_router — all transitively depend on model_pool) so
|
||||
# tests without an explicit `@pytest.mark.e2e` marker are also skipped. Then
|
||||
# clear scanned worker requirements so model_pool — if realized for any
|
||||
# non-skipped fixture — starts empty and never spawns a worker.
|
||||
skip_marker = pytest.mark.skip(
|
||||
reason="worker-dependent tests disabled: SMG runner image crash on transformers.integrations.hub_kernels import"
|
||||
)
|
||||
for item in items:
|
||||
if (
|
||||
item.get_closest_marker("e2e") is not None
|
||||
or "model_pool" in item.fixturenames
|
||||
):
|
||||
item.add_marker(skip_marker)
|
||||
_worker_counts.clear()
|
||||
_first_seen_order.clear()
|
||||
|
||||
|
||||
# ---------------------------------------------------------------------------
|
||||
# Pool requirements
|
||||
|
||||
Reference in New Issue
Block a user