A high-throughput and memory-efficient inference and serving engine for LLMs
Mirrored from https://github.com/tduncan-lum/Nvidia-Optimization-Stack---VLLM.git
Synced Nov 13, 04:30 UTC
[CI][CPU] Smoke test for Apple Silicon using GHA MacOS runner (#28688)
Signed-off-by: mgoin <mgoin64@gmail.com>
Michael Goin committed
Nov 14, 2025 at 11:37 UTC
d54a18a47e7cb6a126a022914c7965f84e15217c
1 file changed
+73
.github/workflows/macos-smoke-test.yml
new
+73
@@ -0,0 +1,73 @@
1
+name: macOS Apple Silicon Smoke Test
2
+
3
+on:
4
+ workflow_dispatch: # Manual trigger
5
+
6
+jobs:
7
+ macos-m1-smoke-test:
8
+ runs-on: macos-latest
9
+ timeout-minutes: 20
10
+
11
+ steps:
12
+ - uses: actions/checkout@v4
13
+
14
+ - uses: astral-sh/setup-uv@v4
15
+ with:
16
+ enable-cache: true
17
+ python-version: '3.12'
18
+
19
+ - name: Install dependencies
20
+ run: |
21
+ uv pip install -r requirements/cpu-build.txt
22
+ uv pip install -r requirements/cpu.txt
23
+
24
+ - name: Build vLLM
25
+ run: uv pip install -v -e .
26
+ env:
27
+ CMAKE_BUILD_PARALLEL_LEVEL: 4
28
+
29
+ - name: Verify installation
30
+ run: |
31
+ python -c "import vllm; print(f'vLLM version: {vllm.__version__}')"
32
+ python -c "import torch; print(f'PyTorch: {torch.__version__}')"
33
+
34
+ - name: Smoke test vllm serve
35
+ timeout-minutes: 10
36
+ run: |
37
+ # Start server in background
38
+ vllm serve Qwen/Qwen3-0.6B \
39
+ --max-model-len=2048 \
40
+ --load-format=dummy \
41
+ --enforce-eager \
42
+ --port 8000 &
43
+
44
+ SERVER_PID=$!
45
+
46
+ # Wait for server to start
47
+ for i in {1..30}; do
48
+ if curl -s http://localhost:8000/health > /dev/null; then
49
+ echo "Server started successfully"
50
+ break
51
+ fi
52
+ if [ "$i" -eq 30 ]; then
53
+ echo "Server failed to start"
54
+ kill "$SERVER_PID"
55
+ exit 1
56
+ fi
57
+ sleep 2
58
+ done
59
+
60
+ # Test health endpoint
61
+ curl -f http://localhost:8000/health
62
+
63
+ # Test completion
64
+ curl -f http://localhost:8000/v1/completions \
65
+ -H "Content-Type: application/json" \
66
+ -d '{
67
+ "model": "Qwen/Qwen3-0.6B",
68
+ "prompt": "Hello",
69
+ "max_tokens": 5
70
+ }'
71
+
72
+ # Cleanup
73
+ kill "$SERVER_PID"