|
72 | 72 | - name: Install dependencies |
73 | 73 | run: | |
74 | 74 | python -m pip install --upgrade pip |
75 | | - pip install bump2version build twine |
| 75 | + pip install bump2version build twine psutil |
76 | 76 | pip install -e ".[all,dev]" |
| 77 | + # Install memory monitoring tools |
| 78 | + pip install memory_profiler |
77 | 79 |
|
78 | 80 | - name: Configure git |
79 | 81 | run: | |
@@ -108,10 +110,28 @@ jobs: |
108 | 110 | python scripts/generate_changelog.py --beta --output BETA_CHANGELOG.md |
109 | 111 |
|
110 | 112 | - name: Run tests |
| 113 | + env: |
| 114 | + # Control memory usage to prevent segmentation faults |
| 115 | + PYTHONMALLOC: debug |
| 116 | + # Limit the number of threads used by numpy/OpenMP |
| 117 | + OMP_NUM_THREADS: 1 |
| 118 | + MKL_NUM_THREADS: 1 |
| 119 | + OPENBLAS_NUM_THREADS: 1 |
| 120 | + # Limit spaCy's memory usage |
| 121 | + SPACY_MAX_THREADS: 1 |
111 | 122 | run: | |
112 | | - python -m pytest tests/ -v --tb=short |
113 | | - python -m pytest -m integration -v |
114 | | - python -m pytest tests/benchmark_text_service.py -v |
| 123 | + # Print system memory info |
| 124 | + free -h || echo "free command not available" |
| 125 | + |
| 126 | + # Split tests into smaller batches to avoid memory issues |
| 127 | + python -m pytest tests/ -v --tb=short -k "not benchmark and not integration" --no-header |
| 128 | + |
| 129 | + # Run integration tests separately |
| 130 | + python -m pytest -m integration -v --no-header |
| 131 | + |
| 132 | + # Run benchmark tests with reduced sample size |
| 133 | + python -c "print('Running memory-intensive benchmark tests with safeguards')" |
| 134 | + python -m pytest tests/benchmark_text_service.py -v --no-header |
115 | 135 |
|
116 | 136 | - name: Build package |
117 | 137 | run: | |
|
0 commit comments