Files
xc-llm-ascend/.github/workflows/_pre_commit.yml
tfhddd 21fea86b08 feat: [CI] Introduce uv to accelerate pip install (#7127)
### What this PR does / why we need it?
Integrates uv: Significantly accelerates pip install execution and
resolves concurrency issues caused by traditional pip caching
mechanisms.

Why pip install uc-manager is explicitly added:
This project depends on uc-manager. However, installing it via uv pip
install uc-manager currently fails due to a known issue. An issue has
already been filed with the upstream uv repository to address this.
Consequently, we explicitly invoke pip install uc-manager as a temporary
workaround to ensure the build succeeds.
https://github.com/ModelEngine-Group/unified-cache-management/issues/736

Why use UV_SYSTEM_PYTHON: 1:
No virtual environment has been created yet; this configuration has the
same effect as directly using `pip install`.

- vLLM version: v0.16.0
- vLLM main:
15d76f74e2

Signed-off-by: tfhddd <2272751277@qq.com>
2026-03-12 16:47:23 +08:00

88 lines
3.0 KiB
YAML

name: pre-commit
on:
workflow_call:
inputs:
vllm:
required: true
type: string
permissions:
contents: read
jobs:
pre-commit:
runs-on: linux-amd64-cpu-8-hk
container:
# Build it from https://github.com/nv-action/vllm-benchmarks/blob/main/Dockerfile
image: quay.io/ascend-ci/vllm-ascend:lint
steps:
- name: Checkout vllm-project/vllm-ascend repo
uses: actions/checkout@v6
# With problem matchers in a container, the output of $GITHUB_WORKSPACE and ${{ github.workspace }} are different.
# So we will just copy it into a temp path. see https://github.com/actions/runner/issues/2058
- name: cp problem matchers
run: |
cp .github/workflows/matchers/actionlint.json "$RUNNER_TEMP/actionlint.json"
cp .github/workflows/matchers/markdownlint.json "$RUNNER_TEMP/markdownlint.json"
cp .github/workflows/matchers/mypy.json "$RUNNER_TEMP/mypy.json"
- run: echo "::add-matcher::$RUNNER_TEMP/actionlint.json"
- run: echo "::add-matcher::$RUNNER_TEMP/markdownlint.json"
- run: echo "::add-matcher::$RUNNER_TEMP/mypy.json"
- name: Checkout vllm-project/vllm repo
uses: actions/checkout@v6
with:
repository: vllm-project/vllm
path: ./vllm-empty
ref: ${{ inputs.vllm }}
- uses: dorny/paths-filter@v3
id: filter
with:
filters: |
lint_tracker:
- 'requirements.txt'
- 'requirements-dev.txt'
- 'requirements-lint.txt'
- name: Install vllm-ascend dev (conditional)
if: steps.filter.outputs.lint_tracker == 'true'
env:
UV_INDEX_URL: http://cache-service.nginx-pypi-cache.svc.cluster.local/pypi/simple
UV_EXTRA_INDEX_URL: https://mirrors.huaweicloud.com/ascend/repos/pypi
UV_INDEX_STRATEGY: unsafe-best-match
UV_NO_CACHE: 1
UV_SYSTEM_PYTHON: 1
run: |
pip install uv
git config --global --add safe.directory /__w/vllm-ascend/vllm-ascend
pip install uc-manager
uv pip install -r requirements-dev.txt --extra-index-url https://download.pytorch.org/whl/cpu
- name: Run pre-commit
env:
PRE_COMMIT_COLOR: always
FORCE_COLOR: "1"
TERM: xterm-256color
SHELLCHECK_OPTS: "--exclude=SC2046,SC2006,SC2086" # Exclude SC2046, SC2006, SC2086 for actionlint
run: |
git config --global --add safe.directory /__w/vllm-ascend/vllm-ascend
pre-commit run --all-files --hook-stage manual --show-diff-on-failure
- name: Run mypy
run: |
PYTHONPATH="$PYTHONPATH:$(pwd)/vllm-empty"
export PYTHONPATH
env
git config --global --add safe.directory /__w/vllm-ascend/vllm-ascend
# Run mypy for Python 3.10, 3.11, 3.12 manually
# Note: We are now separating mypy from pre-commit hooks for performance reasons.
for python_version in "3.10" "3.11" "3.12"; do
echo "============================"
tools/mypy.sh 1 "$python_version"
echo "============================"
done