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 / 310p-test'
19
+
20
+ on :
21
+ push :
22
+ tags :
23
+ - ' v*'
24
+ schedule :
25
+ # Runs every 6 hours
26
+ - cron : ' 0 */6 * * *'
27
+ pull_request :
28
+ types : [ labeled ]
29
+
30
+ # Bash shells do not use ~/.profile or ~/.bashrc so these shells need to be explicitly
31
+ # declared as "shell: bash -el {0}" on steps that need to be properly activated.
32
+ # It's used to activate ascend-toolkit environment variables.
33
+ defaults :
34
+ run :
35
+ shell : bash -el {0}
36
+
37
+ # only cancel in-progress runs of the same workflow
38
+ # and ignore the lint / 1 card / 4 cards test type
39
+ concurrency :
40
+ group : ${{ github.workflow }}-${{ github.ref }}
41
+ cancel-in-progress : true
42
+
43
+ jobs :
44
+ e2e :
45
+ # e2e-310p-test will be triggered when tag 'e2e-310p-test' & 'ready-for-test' or schedule job
46
+ if : >-
47
+ ${{
48
+ (contains(github.event.pull_request.labels.*.name, 'e2e-310p-test')) &&
49
+ contains(github.event.pull_request.labels.*.name, 'ready-for-test') ||
50
+ github.event_name == 'schedule' || github.event_name == 'push'
51
+ }}
52
+ strategy :
53
+ max-parallel : 2
54
+ matrix :
55
+ os : [linux-aarch64-310p-1, linux-aarch64-310p-4]
56
+ vllm_version : [main, v0.9.2]
57
+ name : 310p e2e test
58
+ runs-on : ${{ matrix.os }}
59
+ container :
60
+ # TODO(yikun): Remove m.daocloud.io prefix when infra proxy ready
61
+ image : m.daocloud.io/quay.io/ascend/cann:8.1.rc1-310p-ubuntu22.04-py3.10
62
+ env :
63
+ VLLM_LOGGING_LEVEL : ERROR
64
+ VLLM_USE_MODELSCOPE : True
65
+ steps :
66
+ - name : Check npu and CANN info
67
+ run : |
68
+ npu-smi info
69
+ cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
70
+
71
+ - name : Config mirrors
72
+ run : |
73
+ sed -i 's|ports.ubuntu.com|mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list
74
+ pip config set global.index-url https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple
75
+ apt-get update -y
76
+ apt install git -y
77
+ git config --global url."https://gh-proxy.test.osinfra.cn/https://github.com/".insteadOf https://github.com/
78
+
79
+ - name : Checkout vllm-project/vllm-ascend repo
80
+ uses : actions/checkout@v4
81
+
82
+ - name : Install system dependencies
83
+ run : |
84
+ apt-get -y install `cat packages.txt`
85
+ apt-get -y install git vim wget net-tools gcc g++ cmake libnuma-dev curl gnupg2
86
+
87
+ - name : Checkout vllm-project/vllm repo
88
+ uses : actions/checkout@v4
89
+ with :
90
+ repository : vllm-project/vllm
91
+ ref : ${{ matrix.vllm_version }}
92
+ path : ./vllm-empty
93
+
94
+ - name : Install vllm-project/vllm from source
95
+ working-directory : ./vllm-empty
96
+ run : |
97
+ VLLM_TARGET_DEVICE=empty pip install -e .
98
+
99
+ - name : Install vllm-project/vllm-ascend
100
+ run : |
101
+ export PIP_EXTRA_INDEX_URL=https://mirrors.huaweicloud.com/ascend/repos/pypi
102
+ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/Ascend/ascend-toolkit/latest/x86_64-linux/devlib
103
+ export SOC_VERSION=ASCEND310P3
104
+ pip install -r requirements-dev.txt
105
+ pip install -v -e .
106
+
107
+ - name : Run e2e test
108
+ env :
109
+ VLLM_WORKER_MULTIPROC_METHOD : spawn
110
+ VLLM_USE_MODELSCOPE : True
111
+ PYTORCH_NPU_ALLOC_CONF : max_split_size_mb:256
112
+ run : |
113
+ if [[ "${{ matrix.os }}" == "linux-aarch64-310p-1" ]]; then
114
+ pytest -sv tests/e2e/singlecard/test_offline_inference_310p.py
115
+ else
116
+ pytest -sv tests/e2e/multicard/test_offline_inference_310p.py
117
+ fi
0 commit comments