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