@tduncan / Nvidia-Optimization-Stack-VLLM Mirror · read-only / commits / d54a18a47e
Fork 0

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"