Skip to content

Commit 0d9cdcb

Browse files
committed
Refactor ci to reuse base workflow
Signed-off-by: Yikun Jiang <yikunkero@gmail.com>
1 parent 12bcbd0 commit 0d9cdcb

File tree

7 files changed

+258
-291
lines changed

7 files changed

+258
-291
lines changed

.github/workflows/_e2e_test.yaml

Lines changed: 193 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,193 @@
1+
name: 'e2e test'
2+
3+
on:
4+
workflow_call:
5+
inputs:
6+
vllm:
7+
required: true
8+
type: string
9+
runner:
10+
required: true
11+
type: string
12+
image:
13+
required: true
14+
type: string
15+
type:
16+
required: true
17+
type: string
18+
19+
jobs:
20+
e2e:
21+
name: singlecard
22+
runs-on: ${{ inputs.runner }}-1
23+
container:
24+
image: ${{ inputs.image }}
25+
env:
26+
VLLM_LOGGING_LEVEL: ERROR
27+
VLLM_USE_MODELSCOPE: True
28+
steps:
29+
- name: Check npu and CANN info
30+
run: |
31+
npu-smi info
32+
cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
33+
34+
- name: Config mirrors
35+
run: |
36+
sed -Ei 's@(ports|archive).ubuntu.com@cache-service.nginx-pypi-cache.svc.cluster.local:8081@g' /etc/apt/sources.list
37+
pip config set global.index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple
38+
pip config set global.trusted-host cache-service.nginx-pypi-cache.svc.cluster.local
39+
apt-get update -y
40+
apt install git -y
41+
42+
- name: Checkout vllm-project/vllm-ascend repo
43+
uses: actions/checkout@v4
44+
45+
- name: Install system dependencies
46+
run: |
47+
apt-get -y install `cat packages.txt`
48+
apt-get -y install gcc g++ cmake libnuma-dev
49+
50+
- name: Checkout vllm-project/vllm repo
51+
uses: actions/checkout@v4
52+
with:
53+
repository: vllm-project/vllm
54+
ref: ${{ inputs.vllm }}
55+
path: ./vllm-empty
56+
fetch-depth: 1
57+
58+
- name: Install vllm-project/vllm from source
59+
working-directory: ./vllm-empty
60+
run: |
61+
VLLM_TARGET_DEVICE=empty pip install -e .
62+
63+
- name: Install vllm-project/vllm-ascend
64+
env:
65+
PIP_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
66+
run: |
67+
pip install -r requirements-dev.txt
68+
pip install -v -e .
69+
70+
- name: Run vllm-project/vllm-ascend test
71+
env:
72+
VLLM_WORKER_MULTIPROC_METHOD: spawn
73+
VLLM_USE_MODELSCOPE: True
74+
if: ${{ inputs.type == 'light' }}
75+
run: |
76+
pytest -sv tests/e2e/singlecard/test_aclgraph.py
77+
pytest -sv tests/e2e/singlecard/test_quantization.py
78+
pytest -sv tests/e2e/singlecard/test_vlm.py::test_multimodal_vl
79+
80+
- name: Run e2e test
81+
env:
82+
VLLM_WORKER_MULTIPROC_METHOD: spawn
83+
VLLM_USE_MODELSCOPE: True
84+
if: ${{ inputs.type == 'full' }}
85+
run: |
86+
# We found that if running aclgraph tests in batch, it will cause AclmdlRICaptureBegin error. So we run
87+
# the test separately.
88+
89+
pytest -sv tests/e2e/singlecard/test_aclgraph.py
90+
pytest -sv tests/e2e/singlecard/test_ascend_scheduler.py
91+
pytest -sv tests/e2e/singlecard/test_camem.py
92+
pytest -sv tests/e2e/singlecard/test_chunked.py
93+
pytest -sv tests/e2e/singlecard/test_embedding.py
94+
pytest -sv tests/e2e/singlecard/test_guided_decoding.py
95+
#pytest -sv tests/e2e/singlecard/test_ilama_lora.py
96+
pytest -sv tests/e2e/singlecard/test_profile_execute_duration.py
97+
pytest -sv tests/e2e/singlecard/test_quantization.py
98+
pytest -sv tests/e2e/singlecard/test_sampler.py
99+
pytest -sv tests/e2e/singlecard/test_vlm.py
100+
101+
# ------------------------------------ v1 spec decode test ------------------------------------ #
102+
pytest -sv tests/e2e/singlecard/spec_decode_v1/test_v1_mtp_correctness.py
103+
pytest -sv tests/e2e/singlecard/spec_decode_v1/test_v1_mtp_torchair_correctness.py
104+
pytest -sv tests/e2e/singlecard/spec_decode_v1/test_v1_spec_decode.py
105+
106+
pytest -sv tests/e2e/singlecard/ops/
107+
108+
e2e-2-cards:
109+
needs: [e2e]
110+
name: multicard
111+
runs-on: ${{ inputs.runner }}-2
112+
container:
113+
image: ${{ inputs.image }}
114+
env:
115+
VLLM_LOGGING_LEVEL: ERROR
116+
VLLM_USE_MODELSCOPE: True
117+
steps:
118+
- name: Check npu and CANN info
119+
run: |
120+
npu-smi info
121+
cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
122+
123+
- name: Config mirrors
124+
run: |
125+
sed -Ei 's@(ports|archive).ubuntu.com@cache-service.nginx-pypi-cache.svc.cluster.local:8081@g' /etc/apt/sources.list
126+
pip config set global.index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple
127+
pip config set global.trusted-host cache-service.nginx-pypi-cache.svc.cluster.local
128+
apt-get update -y
129+
apt install git -y
130+
131+
- name: Checkout vllm-project/vllm-ascend repo
132+
uses: actions/checkout@v4
133+
134+
- name: Install system dependencies
135+
run: |
136+
apt-get -y install `cat packages.txt`
137+
apt-get -y install gcc g++ cmake libnuma-dev
138+
139+
- name: Checkout vllm-project/vllm repo
140+
uses: actions/checkout@v4
141+
with:
142+
repository: vllm-project/vllm
143+
ref: ${{ inputs.vllm }}
144+
path: ./vllm-empty
145+
fetch-depth: 1
146+
147+
- name: Install vllm-project/vllm from source
148+
working-directory: ./vllm-empty
149+
run: |
150+
VLLM_TARGET_DEVICE=empty pip install -e .
151+
152+
- name: Install vllm-project/vllm-ascend
153+
env:
154+
PIP_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
155+
run: |
156+
pip install -r requirements-dev.txt
157+
pip install -v -e .
158+
159+
- name: Run vllm-project/vllm-ascend test (light)
160+
env:
161+
VLLM_WORKER_MULTIPROC_METHOD: spawn
162+
VLLM_USE_MODELSCOPE: True
163+
if: ${{ inputs.type == 'light' }}
164+
run: |
165+
pytest -sv tests/e2e/multicard/test_qwen3_moe.py::test_models_distributed_Qwen3_MOE_TP2_WITH_EP
166+
167+
- name: Run vllm-project/vllm-ascend test (full)
168+
env:
169+
VLLM_WORKER_MULTIPROC_METHOD: spawn
170+
VLLM_USE_MODELSCOPE: True
171+
if: ${{ inputs.type == 'full' }}
172+
run: |
173+
pytest -sv tests/e2e/multicard/test_data_parallel.py
174+
pytest -sv tests/e2e/multicard/test_expert_parallel.py
175+
# external_launcher test is not stable enough. Fix it later
176+
# pytest -sv tests/e2e/multicard/test_external_launcher.py
177+
pytest -sv tests/e2e/multicard/test_fused_moe_allgather_ep.py
178+
#pytest -sv tests/e2e/multicard/test_ilama_lora_tp2.py
179+
180+
# To avoid oom, we need to run the test in a single process.
181+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_QwQ
182+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_DeepSeek_multistream_moe
183+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_Qwen3_W8A8
184+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_Qwen3_W4A8DYNAMIC
185+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_DeepSeek_W4A8DYNAMIC
186+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_sp_for_qwen3_moe
187+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_Qwen_Dense_with_flashcomm_v1
188+
pytest -sv tests/e2e/multicard/test_offline_inference_distributed.py::test_models_distributed_Qwen_Dense_with_prefetch_mlp_weight
189+
190+
#pytest -sv tests/e2e/multicard/test_pipeline_parallel.py
191+
pytest -sv tests/e2e/multicard/test_prefix_caching.py
192+
pytest -sv tests/e2e/multicard/test_qwen3_moe.py
193+
pytest -sv tests/e2e/multicard/test_torchair_graph_mode.py

.github/workflows/accuracy_test.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
# 1. PR labeled with: '*accuracy-test' (ONLY 1 label valid) & 'ready-for-test'
2020
# 2. workflow_dispatch with models input
2121
# See detail rule in strategy.matrix note
22-
name: Benchmarks / accuracy
22+
name: ascend test / accuracy
2323

2424
on:
2525
schedule:

.github/workflows/nightly_benchmarks.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# limitations under the License.
1616
#
1717

18-
name: 'Benchmarks / Performance'
18+
name: 'ascend test / performance'
1919
# This workflow runs nightly benchmarks for vllm-ascend.
2020

2121
on:

.github/workflows/vllm_ascend_doctest.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# This file is a part of the vllm-ascend project.
1616
#
1717

18-
name: 'e2e test / doctest'
18+
name: 'ascend test / doctest'
1919

2020
on:
2121
workflow_dispatch:

.github/workflows/vllm_ascend_test.yaml

Lines changed: 10 additions & 126 deletions
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
# This file is a part of the vllm-ascend project.
1616
#
1717

18-
name: 'test'
18+
name: 'ascend test'
1919

2020
on:
2121
push:
@@ -133,132 +133,16 @@ jobs:
133133
verbose: true
134134

135135
e2e-light:
136-
needs: [lint, changes]
137-
# only trigger e2e test after lint passed and the change is e2e related with pull request.
138-
if: ${{ github.event_name == 'pull_request' && needs.lint.result == 'success' && needs.changes.outputs.e2e_tracker == 'true' && !contains(github.event.pull_request.labels.*.name, 'ready') }}
136+
name: e2e-light
139137
strategy:
140-
max-parallel: 2
141138
matrix:
142-
os: [linux-aarch64-a2-1]
143139
vllm_version: [6d8246aaffff3ebec84767e373212a7b8da328e2, v0.10.2]
144-
name: singlecard e2e test - light
145-
runs-on: ${{ matrix.os }}
146-
container:
147-
image: swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/cann:8.2.rc1-910b-ubuntu22.04-py3.11
148-
env:
149-
VLLM_LOGGING_LEVEL: ERROR
150-
VLLM_USE_MODELSCOPE: True
151-
steps:
152-
- name: Check npu and CANN info
153-
run: |
154-
npu-smi info
155-
cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
156-
157-
- name: Config mirrors
158-
run: |
159-
sed -Ei 's@(ports|archive).ubuntu.com@cache-service.nginx-pypi-cache.svc.cluster.local:8081@g' /etc/apt/sources.list
160-
pip config set global.index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple
161-
pip config set global.trusted-host cache-service.nginx-pypi-cache.svc.cluster.local
162-
apt-get update -y
163-
apt install git -y
164-
165-
- name: Checkout vllm-project/vllm-ascend repo
166-
uses: actions/checkout@v4
167-
168-
- name: Install system dependencies
169-
run: |
170-
apt-get -y install `cat packages.txt`
171-
apt-get -y install gcc g++ cmake libnuma-dev
172-
173-
- name: Checkout vllm-project/vllm repo
174-
uses: actions/checkout@v4
175-
with:
176-
repository: vllm-project/vllm
177-
ref: ${{ matrix.vllm_version }}
178-
path: ./vllm-empty
179-
fetch-depth: 1
180-
181-
- name: Install vllm-project/vllm from source
182-
working-directory: ./vllm-empty
183-
run: |
184-
VLLM_TARGET_DEVICE=empty pip install -e .
185-
186-
- name: Install vllm-project/vllm-ascend
187-
env:
188-
PIP_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
189-
run: |
190-
pip install -r requirements-dev.txt
191-
pip install -v -e .
192-
193-
- name: Run e2e test
194-
env:
195-
VLLM_WORKER_MULTIPROC_METHOD: spawn
196-
VLLM_USE_MODELSCOPE: True
197-
run: |
198-
pytest -sv tests/e2e/singlecard/test_aclgraph.py
199-
pytest -sv tests/e2e/singlecard/test_quantization.py
200-
pytest -sv tests/e2e/singlecard/test_vlm.py::test_multimodal_vl
201-
202-
e2e-2-cards-light:
203-
needs: [e2e-light]
204-
if: ${{ needs.e2e-light.result == 'success' }}
205-
strategy:
206-
max-parallel: 2
207-
matrix:
208-
os: [linux-aarch64-a2-2]
209-
vllm_version: [6d8246aaffff3ebec84767e373212a7b8da328e2, v0.10.2]
210-
name: multicard e2e test - light
211-
runs-on: ${{ matrix.os }}
212-
container:
140+
needs: [lint, changes]
141+
# only trigger e2e test after lint passed and the change is e2e related with pull request.
142+
if: ${{ github.event_name == 'pull_request' && needs.lint.result == 'success' && needs.changes.outputs.e2e_tracker == 'true' && !contains(github.event.pull_request.labels.*.name, 'ready') }}
143+
uses: ./.github/workflows/_e2e_test.yaml
144+
with:
145+
vllm: ${{ matrix.vllm_version }}
146+
runner: linux-aarch64-a2
213147
image: swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/cann:8.2.rc1-910b-ubuntu22.04-py3.11
214-
env:
215-
VLLM_LOGGING_LEVEL: ERROR
216-
VLLM_USE_MODELSCOPE: True
217-
steps:
218-
- name: Check npu and CANN info
219-
run: |
220-
npu-smi info
221-
cat /usr/local/Ascend/ascend-toolkit/latest/"$(uname -i)"-linux/ascend_toolkit_install.info
222-
223-
- name: Config mirrors
224-
run: |
225-
sed -Ei 's@(ports|archive).ubuntu.com@cache-service.nginx-pypi-cache.svc.cluster.local:8081@g' /etc/apt/sources.list
226-
pip config set global.index-url http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple
227-
pip config set global.trusted-host cache-service.nginx-pypi-cache.svc.cluster.local
228-
apt-get update -y
229-
apt install git -y
230-
231-
- name: Checkout vllm-project/vllm-ascend repo
232-
uses: actions/checkout@v4
233-
234-
- name: Install system dependencies
235-
run: |
236-
apt-get -y install `cat packages.txt`
237-
apt-get -y install gcc g++ cmake libnuma-dev
238-
239-
- name: Checkout vllm-project/vllm repo
240-
uses: actions/checkout@v4
241-
with:
242-
repository: vllm-project/vllm
243-
ref: ${{ matrix.vllm_version }}
244-
path: ./vllm-empty
245-
fetch-depth: 1
246-
247-
- name: Install vllm-project/vllm from source
248-
working-directory: ./vllm-empty
249-
run: |
250-
VLLM_TARGET_DEVICE=empty pip install -e .
251-
252-
- name: Install vllm-project/vllm-ascend
253-
env:
254-
PIP_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
255-
run: |
256-
pip install -r requirements-dev.txt
257-
pip install -v -e .
258-
259-
- name: Run vllm-project/vllm-ascend test
260-
env:
261-
VLLM_WORKER_MULTIPROC_METHOD: spawn
262-
VLLM_USE_MODELSCOPE: True
263-
run: |
264-
pytest -sv tests/e2e/multicard/test_qwen3_moe.py::test_models_distributed_Qwen3_MOE_TP2_WITH_EP
148+
type: light

0 commit comments

Comments
 (0)