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