From 011fd73a48fbb79505bcbc6fda391dccca176904 Mon Sep 17 00:00:00 2001 From: wangxiyuan Date: Thu, 10 Jul 2025 16:03:23 +0800 Subject: [PATCH] [CI] Make CI tracker more clear (#1720) 1. enable lint check for all change 2. only run ut and e2e if it's the code change. 3. only run ut and disable e2e if the change is ut only. 4. disable wheel build for push case 5. run unit test when pr is merged 6. remove useless pytest.ini - vLLM version: v0.9.2 - vLLM main: https://github.com/vllm-project/vllm/commit/fdfd409f8f6733823ae99545f96a6b503eea0c06 Signed-off-by: wangxiyuan --- .github/workflows/release_code.yml | 12 ----- .github/workflows/release_whl.yml | 13 ----- .github/workflows/vllm_ascend_test.yaml | 62 +++++++++++----------- pytest.ini | 68 ------------------------- 4 files changed, 30 insertions(+), 125 deletions(-) delete mode 100644 pytest.ini diff --git a/.github/workflows/release_code.yml b/.github/workflows/release_code.yml index b340cc4..a11312c 100644 --- a/.github/workflows/release_code.yml +++ b/.github/workflows/release_code.yml @@ -32,20 +32,8 @@ on: - 'CMakeLists.txt' - 'csrc/**' push: - branches: - - 'main' - - '*-dev' tags: - 'v*' - paths: - - '.github/workflows/release_code.yml' - - 'vllm_ascend/**' - - 'setup.py' - - 'pyproject.toml' - - 'requirements.txt' - - 'cmake/**' - - 'CMakeLists.txt' - - 'csrc/**' jobs: build: diff --git a/.github/workflows/release_whl.yml b/.github/workflows/release_whl.yml index 8ed29ef..2e6a44b 100644 --- a/.github/workflows/release_whl.yml +++ b/.github/workflows/release_whl.yml @@ -36,21 +36,8 @@ on: - 'CMakeLists.txt' - 'csrc/**' push: - branches: - - 'main' - - '*-dev' tags: - 'v*' - paths: - - '.github/workflows/release_whl.yml' - - '.github/Dockerfile.buildwheel' - - 'vllm_ascend/**' - - 'setup.py' - - 'pyproject.toml' - - 'requirements.txt' - - 'cmake/**' - - 'CMakeLists.txt' - - 'csrc/**' jobs: build: diff --git a/.github/workflows/vllm_ascend_test.yaml b/.github/workflows/vllm_ascend_test.yaml index ee6bb5f..ec23fce 100644 --- a/.github/workflows/vllm_ascend_test.yaml +++ b/.github/workflows/vllm_ascend_test.yaml @@ -19,38 +19,12 @@ name: 'test' on: push: - # Enable merged test per commit branches: - 'main' - paths: - - '*.txt' - - '**/*.py' - - '.github/workflows/vllm_ascend_test.yaml' - - '!docs/**' - - 'pytest.ini' - - '!benchmarks/**' - - 'tools/mypy.sh' - - 'mypy.ini' - - '.github/workflows/*.ya?ml' - - '.github/workflows/actionlint.*' - - '.github/workflows/matchers/actionlint.json' pull_request: branches: - 'main' - '*-dev' - paths: - - '*.txt' - - '**/*.py' - - '.github/workflows/vllm_ascend_test.yaml' - - '!docs/**' - - '!examples/**' - - 'pytest.ini' - - '!benchmarks/**' - - 'tools/mypy.sh' - - 'mypy.ini' - - '.github/workflows/*.ya?ml' - - '.github/workflows/actionlint.*' - - '.github/workflows/matchers/actionlint.json' # 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. @@ -71,11 +45,35 @@ jobs: if: ${{ github.event_name == 'pull_request' }} uses: ./.github/workflows/pre-commit.yml + changes: + # Only trigger changes on pull request + if: ${{ github.event_name == 'pull_request' }} + runs-on: ubuntu-latest + permissions: + pull-requests: read + outputs: + e2e_tracker: ${{ steps.filter.outputs.e2e_tracker }} + ut_tracker: ${{ steps.filter.outputs.ut_tracker }} + steps: + - uses: dorny/paths-filter@v3 + id: filter + with: + filters: | + e2e_tracker: + - 'vllm_ascend/**' + - 'csrc/**' + - 'cmake/**' + - 'tests/e2e/**' + - 'tests/conftest.py' + - 'tests/model_utils.py' + - 'tests/utils.py' + ut_tracker: + - 'tests/ut/**' ut: - needs: [lint] + needs: [lint, changes] name: unit test - # only trigger e2e test on [pull request after lint passed] and [merged commit] - if: ${{ needs.lint.result == 'success' || github.event_name == 'push' }} + # only trigger unit test after lint passed and the change is e2e and ut related. Or the PR is merged. + if: ${{ github.event_name == 'push' || (needs.lint.result == 'success' && (needs.changes.outputs.e2e_tracker == 'true' || needs.changes.outputs.ut_tracker == 'true')) }} runs-on: ubuntu-latest container: image: quay.io/ascend/cann:8.1.rc1-910b-ubuntu22.04-py3.10 @@ -134,9 +132,9 @@ jobs: verbose: true e2e: - needs: [lint] - # only trigger e2e test on pull request after lint passed - if: ${{ needs.lint.result == 'success' && github.event_name == 'pull_request' }} + needs: [lint, changes] + # only trigger e2e test after lint passed and the change is e2e related. + if: ${{ needs.lint.result == 'success' && needs.changes.outputs.e2e_tracker == 'true' }} strategy: max-parallel: 2 matrix: diff --git a/pytest.ini b/pytest.ini deleted file mode 100644 index e59921e..0000000 --- a/pytest.ini +++ /dev/null @@ -1,68 +0,0 @@ -[pytest] -minversion = 6.0 -norecursedirs = - vllm-empty/tests/prefix_caching - vllm-empty/tests/weight_loading - vllm-empty/tests/samplers - vllm-empty/tests/kernels - vllm-empty/tests/quantization - vllm-empty/tests/tool_use - vllm-empty/tests/runai_model_streamer_test - vllm-empty/tests/kv_transfer - vllm-empty/tests/plugins - vllm-empty/tests/plugins_tests - vllm-empty/tests/prompt_adapter - vllm-empty/tests/compile - vllm-empty/tests/lora - vllm-empty/tests/models - vllm-empty/tests/mistral_tool_use - vllm-empty/tests/standalone_tests - vllm-empty/tests/async_engine - vllm-empty/tests/mq_llm_engine - vllm-empty/tests/tokenization - vllm-empty/tests/core - vllm-empty/tests/tracing - vllm-empty/tests/engine - vllm-empty/tests/tensorizer_loader - vllm-empty/tests/entrypoints - vllm-empty/tests/model_executor - vllm-empty/tests/encoder_decoder - vllm-empty/tests/v1 - vllm-empty/tests/spec_decode - vllm-empty/tests/multi_step - vllm-empty/tests/vllm_test_utils - vllm-empty/tests/tpu - vllm-empty/tests/distributed - vllm-empty/tests/basic_correctness - vllm-empty/tests/worker - vllm-empty/tests/metrics - vllm-empty/tests/neuron - ; fastsafetensors not support npu now - vllm-empty/tests/fastsafetensors_loader - -addopts = --ignore=vllm-empty/tests/test_utils.py - --ignore=vllm-empty/tests/test_config.py - --ignore=vllm-empty/tests/test_scalartype.py - --ignore=vllm-empty/tests/test_version.py - --ignore=vllm-empty/tests/test_embedded_commit.py - --ignore=vllm-empty/tests/test_inputs.py - --ignore=vllm-empty/tests/test_sharded_state_loader.py - --ignore=vllm-empty/tests/test_logger.py - --ignore=vllm-empty/tests/test_logits_processor.py - --ignore=vllm-empty/tests/test_regression.py - --ignore=vllm-empty/tests/models/decoder_only/language/test_aqlm.py - --ignore=vllm-empty/tests/models/decoder_only/language/test_gptq_marlin.py - --ignore=vllm-empty/tests/models/decoder_only/language/test_gptq_marlin_24.py - --ignore=vllm-empty/tests/multimodal/test_processing.py - --ignore=vllm-empty/tests/multimodal/test_processor_kwargs.py - --ignore=vllm-empty/tests/multimodal/test_utils.py - ; Both V1 and V0 engine will be run in detokenizer/test_stop_reason - ; VLLM_USE_V1=1 is not supported with device type=npu. - --ignore=vllm-empty/tests/detokenizer/test_stop_reason.py - ; oom on llama-2-7b-hf - --ignore=vllm-empty/tests/detokenizer/test_stop_strings.py - ; no need to run on vllm-ascend - --ignore=vllm-empty/tests/test_vllm_port.py - -testpaths = - vllm-empty/tests