Skip to content

Commit d54a18a

Browse files
authored
[CI][CPU] Smoke test for Apple Silicon using GHA MacOS runner (vllm-project#28688)
Signed-off-by: mgoin <[email protected]>
1 parent 5f3cd7f commit d54a18a

File tree

1 file changed

+73
-0
lines changed

1 file changed

+73
-0
lines changed
Lines changed: 73 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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"

0 commit comments

Comments
 (0)