Skip to content

Commit e7ad4a6

Browse files
[CI] Add e2e ci test for A3 (vllm-project#2573)
### What this PR does / why we need it? Add e2e ci test for A3 ### How was this patch tested? - vLLM version: v0.10.1.1 - vLLM main: vllm-project/vllm@11a7faf Signed-off-by: hfadzxy <starmoon_zhang@163.com>
1 parent dfc7eb3 commit e7ad4a6

File tree

2 files changed

+131
-0
lines changed

2 files changed

+131
-0
lines changed

.github/actionlint.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,7 @@ self-hosted-runner:
1111
- linux-aarch64-310p-2
1212
- linux-aarch64-310p-4
1313
- ubuntu-24.04-arm
14+
- linux-aarch64-a3-1
15+
- linux-aarch64-a3-2
16+
- linux-aarch64-a3-4
17+
- linux-aarch64-a3-8
Lines changed: 127 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,127 @@
1+
#
2+
# Copyright (c) 2025 Huawei Technologies Co., Ltd. All Rights Reserved.
3+
#
4+
# Licensed under the Apache License, Version 2.0 (the "License");
5+
# you may not use this file except in compliance with the License.
6+
# You may obtain a copy of the License at
7+
#
8+
# http://www.apache.org/licenses/LICENSE-2.0
9+
#
10+
# Unless required by applicable law or agreed to in writing, software
11+
# distributed under the License is distributed on an "AS IS" BASIS,
12+
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
# See the License for the specific language governing permissions and
14+
# limitations under the License.
15+
# This file is a part of the vllm-ascend project.
16+
#
17+
18+
name: 'e2e test / a3-test'
19+
20+
on:
21+
push:
22+
branches:
23+
- 'main'
24+
pull_request:
25+
branches:
26+
- 'main'
27+
- '*-dev'
28+
29+
# Bash shells do not use ~/.profile or ~/.bashrc so these shells need to be explicitly
30+
# declared as "shell: bash -el {0}" on steps that need to be properly activated.
31+
# It's used to activate ascend-toolkit environment variables.
32+
defaults:
33+
run:
34+
shell: bash -el {0}
35+
36+
# only cancel in-progress runs of the same workflow
37+
# and ignore the lint / 8 cards test type
38+
concurrency:
39+
group: ${{ github.workflow }}-${{ github.ref }}
40+
cancel-in-progress: true
41+
42+
jobs:
43+
changes:
44+
runs-on: ubuntu-latest
45+
outputs:
46+
e2e_tracker: ${{ steps.filter.outputs.e2e_tracker }}
47+
steps:
48+
- uses: actions/checkout@v4
49+
- uses: dorny/paths-filter@v3
50+
id: filter
51+
with:
52+
filters: |
53+
e2e_tracker:
54+
- '.github/workflows/vllm_ascend_dist.yaml'
55+
- 'vllm_ascend/**'
56+
- 'csrc/**'
57+
- 'cmake/**'
58+
- 'tests/e2e/**'
59+
- 'CMakeLists.txt'
60+
- 'setup.py'
61+
- 'requirements.txt'
62+
- 'requirements-dev.txt'
63+
- 'requirements-lint.txt'
64+
- 'packages.txt'
65+
66+
e2e:
67+
needs: [changes]
68+
# only trigger e2e test after lint passed and the change is e2e related with pull request.
69+
if: ${{ github.event_name == 'pull_request' && needs.changes.outputs.e2e_tracker == 'true'}}
70+
strategy:
71+
matrix:
72+
os: [linux-aarch64-a3-8]
73+
vllm_version: [v0.10.1.1, main]
74+
name: vLLM Ascend test
75+
runs-on: ${{ matrix.os }}
76+
container:
77+
image: m.daocloud.io/quay.io/ascend/cann:8.2.rc1-a3-ubuntu22.04-py3.11
78+
env:
79+
DEBIAN_FRONTEND: noninteractive
80+
steps:
81+
- name: Check npu and CANN info
82+
run: |
83+
npu-smi info
84+
cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
85+
86+
- name: Config mirrors
87+
run: |
88+
sed -i 's|ports.ubuntu.com|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
89+
pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
90+
apt-get update -y
91+
apt install git -y
92+
git config --global url."https://gh-proxy.test.osinfra.cn/https://github.com/".insteadOf https://github.com/
93+
94+
- name: Checkout vllm-project/vllm-ascend repo
95+
uses: actions/checkout@v4
96+
97+
- name: Install system dependencies
98+
run: |
99+
apt-get -y install `cat packages.txt`
100+
apt-get -y install gcc g++ cmake libnuma-dev
101+
102+
- name: Checkout vllm-project/vllm repo
103+
uses: actions/checkout@v4
104+
with:
105+
repository: vllm-project/vllm
106+
ref: ${{ matrix.vllm_version }}
107+
path: ./vllm-empty
108+
109+
- name: Install vllm-project/vllm from source
110+
working-directory: ./vllm-empty
111+
run: |
112+
VLLM_TARGET_DEVICE=empty pip install -e .
113+
114+
- name: Install vllm-project/vllm-ascend
115+
run: |
116+
export PIP_EXTRA_INDEX_URL=https://mirrors.huaweicloud.com/ascend/repos/pypi
117+
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/devlib
118+
pip install -r requirements-dev.txt
119+
pip install -v -e .
120+
121+
- name: Run vllm-project/vllm-ascend test for V1 Engine
122+
env:
123+
VLLM_WORKER_MULTIPROC_METHOD: spawn
124+
VLLM_USE_MODELSCOPE: True
125+
run: |
126+
# TODO: enable more tests
127+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_DeepSeek_multistream_moe

0 commit comments

Comments
 (0)