[CI] Add multi-hardware wheel build and release workflow (#7312)
### What this PR does / why we need it?
Adds a scheduled CI workflow (schedule_release_code_and_wheel.yml) to
automatically build and release vllm-ascend source packages and binary
wheels for multiple Ascend hardware targets.
Key features:
1. Source release: Builds tar.gz sdist and uploads to PyPI on version
tag push
2. Multi-hardware wheel builds: Supports three hardware targets in
parallel:
2.1 A2 (Ascend 910B): x86_64 + ARM64, Python 3.10 / 3.11
2.2 A3 (Ascend 910C): x86_64 + ARM64, Python 3.10 / 3.11
2.3 310P: x86_64 + ARM64, Python 3.10 / 3.11
3. Wheel repair: Uses auditwheel to produce manylinux-compatible wheels,
excluding Ascend NPU runtime libs (libascend*.so, libtorch*.so, etc.)
that must be provided by the runtime environment
4. Variant wheels: Generates hardware-variant wheels via variantlib for
hardware-specific distribution
5. OBS upload: Aggregates all variant wheels and a combined index JSON,
then uploads to Huawei OBS for hosting
### Does this PR introduce _any_ user-facing change?
Yes. Users will be able to install hardware-specific vllm-ascend wheels
from PyPI or the OBS variant index, eliminating the need to build from
source.
### How was this patch tested?
1. CI verification only — workflow syntax and job dependency logic
reviewed manually
2. Wheel build steps validated against existing Dockerfiles
(Dockerfile.buildwheel.a2/a3/310p)
3. auditwheel exclusion list verified against known Ascend runtime
shared libraries
- vLLM version: v0.17.0
- vLLM main:
4034c3d32e
---------
Signed-off-by: hfadzxy <starmoon_zhang@163.com>
Signed-off-by: YanZhicong <mryanzhicong@163.com>
Co-authored-by: YanZhicong <mryanzhicong@163.com>
This commit is contained in:
33
.github/workflows/scripts/wheel/config.json
vendored
Normal file
33
.github/workflows/scripts/wheel/config.json
vendored
Normal file
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"variables": {
|
||||
"wheel_env": "WHEEL_FILE",
|
||||
"pyproject_toml_env": "PROJECT_TOML",
|
||||
"output_dir_env": "OUTPUT_DIR"
|
||||
},
|
||||
"jobs": [
|
||||
{
|
||||
"variant_label": "310p",
|
||||
"properties": [
|
||||
"ascend :: npu_type :: 310p",
|
||||
"ascend :: cann_version :: 8.5.1"
|
||||
],
|
||||
"skip_plugin_validation": true
|
||||
},
|
||||
{
|
||||
"variant_label": "a2",
|
||||
"properties": [
|
||||
"ascend :: npu_type :: a2",
|
||||
"ascend :: cann_version :: 8.5.1"
|
||||
],
|
||||
"skip_plugin_validation": true
|
||||
},
|
||||
{
|
||||
"variant_label": "a3",
|
||||
"properties": [
|
||||
"ascend :: npu_type :: a3",
|
||||
"ascend :: cann_version :: 8.5.1"
|
||||
],
|
||||
"skip_plugin_validation": true
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user