# # Copyright (c) 2025 Huawei Technologies Co., Ltd. All Rights Reserved. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # This file is a part of the vllm-ascend project. # # This workflow related to the resources atlas 800 A2 # We will not limit the concurrency of jobs on A2 name: Nightly-A2 on: schedule: # Run test at 24:00 Beijing time (UTC+8) - cron: "0 16 * * *" workflow_dispatch: pull_request: branches: - 'main' types: [ labeled ] # Bash shells do not use ~/.profile or ~/.bashrc so these shells need to be explicitly # declared as "shell: bash -el {0}" on steps that need to be properly activated. # It's used to activate ascend-toolkit environment variables. defaults: run: shell: bash -el {0} # only cancel in-progress runs of the same workflow concurrency: group: ascend-nightly-${{ github.ref }}-a2 cancel-in-progress: true jobs: single-node-tests: name: single-node if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') strategy: fail-fast: false matrix: test_config: - name: qwen3-32b os: linux-aarch64-a2-4 tests: tests/e2e/nightly/models/test_qwen3_32b.py - name: qwen3-32b-in8-a2 os: linux-aarch64-a2-4 tests: tests/e2e/nightly/models/test_qwen3_32b_int8.py - name: test_custom_op os: linux-aarch64-a2-1 tests: tests/e2e/nightly/ops uses: ./.github/workflows/_e2e_nightly_single_node.yaml with: vllm: v0.13.0 runner: ${{ matrix.test_config.os }} tests: ${{ matrix.test_config.tests }} name: ${{ matrix.test_config.name }} image: 'swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/vllm-ascend:nightly-a2' multi-node-tests: name: multi-node if: always() && (github.event_name == 'schedule' || github.event_name == 'workflow_dispatch') needs: single-node-tests strategy: fail-fast: false max-parallel: 1 matrix: test_config: - name: multi-node-deepseek-dp config_file_path: DeepSeek-R1-W8A8-A2.yaml size: 2 uses: ./.github/workflows/_e2e_nightly_multi_node.yaml with: soc_version: a2 runner: linux-aarch64-a2-0 image: 'swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/vllm-ascend:nightly-a2' replicas: 1 size: ${{ matrix.test_config.size }} config_file_path: ${{ matrix.test_config.config_file_path }} secrets: KUBECONFIG_B64: ${{ secrets.KUBECONFIG_A2_B64 }} single-node-accuracy-tests: if: >- ${{ github.event_name == 'schedule' || github.event_name == 'workflow_dispatch' || ( contains(github.event.pull_request.labels.*.name, 'accuracy-test') && contains(github.event.pull_request.labels.*.name, 'ready-for-test') ) }} strategy: fail-fast: false matrix: test_config: - os: linux-aarch64-a2-1 model_list: - Qwen3-8B - Qwen2-Audio-7B-Instruct - Qwen3-8B-W8A8 - Qwen3-VL-8B-Instruct - Qwen2.5-Omni-7B - os: linux-aarch64-a2-1 model_list: - ERNIE-4.5-21B-A3B-PT - InternVL3_5-8B-hf - Molmo-7B-D-0924 - Llama-3.2-3B-Instruct - llava-onevision-qwen2-0.5b-ov-hf - os: linux-aarch64-a2-2 model_list: - Qwen3-30B-A3B - Qwen3-VL-30B-A3B-Instruct - Qwen3-30B-A3B-W8A8 - os: linux-aarch64-a2-4 model_list: - Qwen3-Next-80B-A3B-Instruct - Qwen3-Omni-30B-A3B-Instruct uses: ./.github/workflows/_e2e_nightly_single_node_models.yaml with: vllm: v0.13.0 runner: ${{ matrix.test_config.os }} model_list: ${{ toJson(matrix.test_config.model_list) }} image: 'swr.cn-southwest-2.myhuaweicloud.com/base_image/ascend-ci/cann:8.3.rc2-910b-ubuntu22.04-py3.11' upload: false