diff --git a/.github/workflows/build-reusable.yml b/.github/workflows/build-reusable.yml index b2323a3..8bec3ed 100644 --- a/.github/workflows/build-reusable.yml +++ b/.github/workflows/build-reusable.yml @@ -278,6 +278,7 @@ jobs: - name: Run tests with pytest env: CI: true + LEANN_SKIP_COMPAT: 1 OPENAI_API_KEY: ${{ secrets.OPENAI_API_KEY }} HF_HUB_DISABLE_SYMLINKS: 1 TOKENIZERS_PARALLELISM: false diff --git a/packages/leann-core/src/leann/embedding_server_manager.py b/packages/leann-core/src/leann/embedding_server_manager.py index 2432325..5ee8f08 100644 --- a/packages/leann-core/src/leann/embedding_server_manager.py +++ b/packages/leann-core/src/leann/embedding_server_manager.py @@ -215,10 +215,23 @@ class EmbeddingServerManager: logger.info("Detected Colab environment, using alternative startup strategy") return self._start_server_colab(port, model_name, embedding_mode, **kwargs) - # Find a compatible port or next available - actual_port, is_compatible = _find_compatible_port_or_next_available( - port, model_name, passages_file + # In CI or when explicitly requested, skip compatibility scanning to avoid slow/hanging proc scans + skip_compat = ( + os.environ.get("LEANN_SKIP_COMPAT", "").lower() in {"1", "true", "yes"} + or os.environ.get("CI") == "true" ) + if skip_compat: + try: + actual_port = _get_available_port(port) + is_compatible = False + except RuntimeError: + logger.error("No available ports found") + return False, port + else: + # Find a compatible port or next available (may scan processes) + actual_port, is_compatible = _find_compatible_port_or_next_available( + port, model_name, passages_file + ) if is_compatible: logger.info(f"Found compatible server on port {actual_port}")