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