fix: move tmate debug session inside pytest step to avoid hanging

The issue was that tmate was placed before pytest step, but the hang
occurs during pytest execution. Now tmate starts inside the test step
and provides connection info before running tests.
This commit is contained in:
Andy Lee
2025-08-11 22:19:34 +00:00
parent 51bbf3efbf
commit eb6c9e0a32

View File

@@ -228,14 +228,6 @@ jobs:
python -c "from leann_backend_diskann import _diskannpy; print('_diskannpy imported successfully')" || echo "Failed to import _diskannpy"
ls -la $(python -c "import leann_backend_diskann; import os; print(os.path.dirname(leann_backend_diskann.__file__))" 2>/dev/null) 2>/dev/null || echo "Failed to list module directory"
# Enable tmate debugging session if requested
- name: Setup tmate session for debugging
if: ${{ inputs.debug_enabled }}
uses: mxschmitt/action-tmate@v3
with:
detached: true
timeout-minutes: 30
limit-access-to-actor: true
- name: Run tests with pytest
env:
CI: true # Mark as CI environment to skip memory-intensive tests
@@ -249,6 +241,31 @@ jobs:
# Activate virtual environment
source .venv/bin/activate || source .venv/Scripts/activate
# Start tmate session INSIDE the test step if debug enabled
if [[ "${{ inputs.debug_enabled }}" == "true" ]]; then
echo "🔧 DEBUG MODE: Starting tmate session before tests..."
# Install tmate if not available
if ! command -v tmate &> /dev/null; then
if [[ "$RUNNER_OS" == "Linux" ]]; then
sudo apt-get update && sudo apt-get install -y tmate
elif [[ "$RUNNER_OS" == "macOS" ]]; then
brew install tmate
fi
fi
# Start tmate session in background
tmate -S debug-session new-session -d
echo "🔗 Tmate session created. Connection info:"
tmate -S debug-session display -p '#{tmate_ssh}'
echo "🔗 Web session: $(tmate -S debug-session display -p '#{tmate_web}')"
echo "⏱️ Session will timeout after 30 minutes"
echo "💡 You can now SSH in and run: pytest tests/ -vv --capture=no"
echo "💡 Or run diagnostics: bash scripts/diagnose_hang.sh"
echo ""
echo "Waiting 60 seconds for you to connect..."
sleep 60
fi
# Define comprehensive diagnostic function
diag() {
echo "===== COMPREHENSIVE DIAGNOSTICS BEGIN ====="