Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
OpenDAS
vllm_cscc
Commits
2284461d
Unverified
Commit
2284461d
authored
Jan 29, 2026
by
Kevin H. Luu
Committed by
GitHub
Jan 29, 2026
Browse files
[release] Minor fixes to release annotation and wheel upload (#33129)
Signed-off-by:
khluu
<
khluu000@gmail.com
>
parent
8e2a469b
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
51 additions
and
63 deletions
+51
-63
.buildkite/release-pipeline.yaml
.buildkite/release-pipeline.yaml
+2
-2
.buildkite/scripts/annotate-release.sh
.buildkite/scripts/annotate-release.sh
+39
-17
.buildkite/scripts/upload-release-wheels-pypi.sh
.buildkite/scripts/upload-release-wheels-pypi.sh
+10
-44
No files found.
.buildkite/release-pipeline.yaml
View file @
2284461d
...
...
@@ -257,14 +257,14 @@ steps:
-
input-release-version
-
build-wheels
-
label
:
"
Upload
release
wheels
to
PyPI
and
GitHub
"
-
label
:
"
Upload
release
wheels
to
PyPI"
depends_on
:
-
block-upload-release-wheels
id
:
upload-release-wheels
agents
:
queue
:
small_cpu_queue_postmerge
commands
:
-
"
bash
.buildkite/scripts/upload-release-wheels.sh"
-
"
bash
.buildkite/scripts/upload-release-wheels
-pypi
.sh"
# =============================================================================
# ROCm Release Pipeline (x86_64 only)
...
...
.buildkite/scripts/annotate-release.sh
View file @
2284461d
...
...
@@ -11,58 +11,80 @@ fi
buildkite-agent annotate
--style
'info'
--context
'release-workflow'
<<
EOF
To download the wheel (by commit):
\`\`\`
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux1_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux
2014
_aarch64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux
_2_3
1_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux
_2_31
_aarch64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cu129-cp38-abi3-manylinux1_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cu1
29
-cp38-abi3-manylinux
1
_x86_64.whl .
\`\`\`
(Optional) For CUDA 13.0:
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cu1
30
-cp38-abi3-manylinux
_2_35
_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cu130-cp38-abi3-manylinux_2_35_aarch64.whl .
To download the wheel (by version):
(Optional) For CPU:
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cpu-cp38-abi3-manylinux_2_35_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
BUILDKITE_COMMIT
}
/vllm-
${
RELEASE_VERSION
}
+cpu-cp38-abi3-manylinux_2_35_aarch64.whl .
\`\`\`
aws s3 cp s3://vllm-wheels/
${
RELEASE_VERSION
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux1_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
RELEASE_VERSION
}
/vllm-
${
RELEASE_VERSION
}
-cp38-abi3-manylinux2014_aarch64.whl .
aws s3 cp s3://vllm-wheels/
${
RELEASE_VERSION
}
+cu129/vllm-
${
RELEASE_VERSION
}
+cu129-cp38-abi3-manylinux1_x86_64.whl .
aws s3 cp s3://vllm-wheels/
${
RELEASE_VERSION
}
+cu130/vllm-
${
RELEASE_VERSION
}
+cu130-cp38-abi3-manylinux1_x86_64.whl .
\`\`\`
To download and upload the image:
\`\`\`
Download images:
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-x86_64
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-aarch64
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-x86_64-cu130
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-aarch64-cu130
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-rocm-base
docker pull public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-rocm
Tag and push images:
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-x86_64 vllm/vllm-openai:x86_64
docker tag vllm/vllm-openai:x86_64 vllm/vllm-openai:latest-x86_64
docker tag vllm/vllm-openai:x86_64 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64
docker push vllm/vllm-openai:latest-x86_64
docker push vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-x86_64-cu130 vllm/vllm-openai:x86_64-cu130
docker tag vllm/vllm-openai:x86_64-cu130 vllm/vllm-openai:latest-x86_64-cu130
docker tag vllm/vllm-openai:x86_64-cu130 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64-cu130
docker push vllm/vllm-openai:latest-x86_64-cu130
docker push vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64-cu130
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-aarch64 vllm/vllm-openai:aarch64
docker tag vllm/vllm-openai:aarch64 vllm/vllm-openai:latest-aarch64
docker tag vllm/vllm-openai:aarch64 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64
docker push vllm/vllm-openai:latest-aarch64
docker push vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-aarch64-cu130 vllm/vllm-openai:aarch64-cu130
docker tag vllm/vllm-openai:aarch64-cu130 vllm/vllm-openai:latest-aarch64-cu130
docker tag vllm/vllm-openai:aarch64-cu130 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64-cu130
docker push vllm/vllm-openai:latest-aarch64-cu130
docker push vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64-cu130
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-rocm vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-rocm
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-rocm vllm/vllm-openai-rocm:latest
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-rocm vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
-rocm
docker push vllm/vllm-openai-rocm:latest
docker push vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
-rocm
Create multi-arch manifest:
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-rocm-base vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-base
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-base vllm/vllm-openai-rocm:latest-base
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
-base vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
-base
docker push vllm/vllm-openai-rocm:latest-base
docker push vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
-base
docker tag public.ecr.aws/q9t5s3a7/vllm-release-repo:
${
BUILDKITE_COMMIT
}
-rocm vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
vllm/vllm-openai-rocm:latest
docker tag vllm/vllm-openai-rocm:
${
BUILDKITE_COMMIT
}
vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
docker push vllm/vllm-openai-rocm:latest
docker push vllm/vllm-openai-rocm:v
${
RELEASE_VERSION
}
docker manifest rm vllm/vllm-openai:latest
docker manifest create vllm/vllm-openai:latest vllm/vllm-openai:latest-x86_64 vllm/vllm-openai:latest-aarch64
docker manifest create vllm/vllm-openai:v
${
RELEASE_VERSION
}
vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64
docker manifest push vllm/vllm-openai:latest
docker manifest push vllm/vllm-openai:v
${
RELEASE_VERSION
}
docker manifest rm vllm/vllm-openai:latest-cu130
docker manifest create vllm/vllm-openai:latest-cu130 vllm/vllm-openai:latest-x86_64-cu130 vllm/vllm-openai:latest-aarch64-cu130
docker manifest create vllm/vllm-openai:v
${
RELEASE_VERSION
}
-cu130 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-x86_64-cu130 vllm/vllm-openai:v
${
RELEASE_VERSION
}
-aarch64-cu130
docker manifest push vllm/vllm-openai:latest-cu130
docker manifest push vllm/vllm-openai:v
${
RELEASE_VERSION
}
-cu130
\`\`\`
EOF
.buildkite/scripts/upload-release-wheels.sh
→
.buildkite/scripts/upload-release-wheels
-pypi
.sh
View file @
2284461d
...
...
@@ -7,17 +7,19 @@ SUBPATH=$BUILDKITE_COMMIT
S3_COMMIT_PREFIX
=
"s3://
$BUCKET
/
$SUBPATH
/"
RELEASE_VERSION
=
$(
buildkite-agent meta-data get release-version
)
echo
"Release version from Buildkite:
$RELEASE_VERSION
"
GIT_VERSION
=
$(
git describe
--exact-match
--tags
$BUILDKITE_COMMIT
2>/dev/null
)
if
[
-z
"
$GIT_VERSION
"
]
;
then
echo
"Release version from Buildkite:
$RELEASE_VERSION
"
if
[[
-z
"
$GIT_VERSION
"
]]
;
then
echo
"[FATAL] Not on a git tag, cannot create release."
exit
1
else
echo
"Git version for commit
$BUILDKITE_COMMIT
:
$GIT_VERSION
"
fi
# sanity check for version mismatch
if
[
"
$RELEASE_VERSION
"
!=
"
$GIT_VERSION
"
]
;
then
if
[
"
$FORCE_RELEASE_IGNORE_VERSION_MISMATCH
"
==
"true"
]
;
then
if
[
[
"
$RELEASE_VERSION
"
!=
"
$GIT_VERSION
"
]
]
;
then
if
[
[
"
$FORCE_RELEASE_IGNORE_VERSION_MISMATCH
"
==
"true"
]
]
;
then
echo
"[WARNING] Force release and ignore version mismatch"
else
echo
"[FATAL] Release version from Buildkite does not match Git version."
...
...
@@ -27,7 +29,7 @@ fi
PURE_VERSION
=
${
RELEASE_VERSION
#v
}
# remove leading 'v'
# check pypi token
if
[
-z
"
$PYPI_TOKEN
"
]
;
then
if
[
[
-z
"
$PYPI_TOKEN
"
]
]
;
then
echo
"[FATAL] PYPI_TOKEN is not set."
exit
1
else
...
...
@@ -35,41 +37,8 @@ else
export
TWINE_PASSWORD
=
"
$PYPI_TOKEN
"
fi
# check github token
if
[
-z
"
$GITHUB_TOKEN
"
]
;
then
echo
"[FATAL] GITHUB_TOKEN is not set."
exit
1
else
export
GH_TOKEN
=
"
$GITHUB_TOKEN
"
fi
set
-x
# avoid printing secrets above
# download gh CLI from github
# Get latest gh CLI version from GitHub API
GH_VERSION
=
$(
curl
-s
https://api.github.com/repos/cli/cli/releases/latest |
grep
'"tag_name":'
|
sed
-E
's/.*"([^"]+)".*/\1/'
|
sed
's/^v//'
)
if
[
-z
"
$GH_VERSION
"
]
;
then
echo
"[FATAL] Failed to get latest gh CLI version from GitHub"
exit
1
fi
echo
"Downloading gh CLI version:
$GH_VERSION
"
GH_TARBALL
=
"gh_
${
GH_VERSION
}
_linux_amd64.tar.gz"
GH_URL
=
"https://github.com/cli/cli/releases/download/v
${
GH_VERSION
}
/
${
GH_TARBALL
}
"
GH_INSTALL_DIR
=
"/tmp/gh-install"
mkdir
-p
"
$GH_INSTALL_DIR
"
pushd
"
$GH_INSTALL_DIR
"
curl
-L
-o
"
$GH_TARBALL
"
"
$GH_URL
"
tar
-xzf
"
$GH_TARBALL
"
GH_BIN
=
$(
realpath
$(
find
.
-name
"gh"
-type
f
-executable
|
head
-n
1
))
if
[
-z
"
$GH_BIN
"
]
;
then
echo
"[FATAL] Failed to find gh CLI executable"
exit
1
fi
echo
"gh CLI downloaded successfully, version:
$(
$GH_BIN
--version
)
"
echo
"Last 5 releases on GitHub:"
# as a sanity check of gh and GH_TOKEN
command
"
$GH_BIN
"
release list
--limit
5
popd
# install twine from pypi
python3
-m
venv /tmp/vllm-release-env
source
/tmp/vllm-release-env/bin/activate
...
...
@@ -89,16 +58,13 @@ echo "Wheels copied to local directory"
git archive
--format
=
tar.gz
--output
=
"
$DIST_DIR
/vllm-
${
PURE_VERSION
}
.tar.gz"
$BUILDKITE_COMMIT
ls
-la
$DIST_DIR
# upload wheels to PyPI (only default variant, i.e. files without '+' in the name)
PYPI_WHEEL_FILES
=
$(
find
$DIST_DIR
-name
"vllm-
${
PURE_VERSION
}
*.whl"
-not
-name
"*+*"
)
if
[
-z
"
$PYPI_WHEEL_FILES
"
]
;
then
if
[
[
-z
"
$PYPI_WHEEL_FILES
"
]
]
;
then
echo
"No default variant wheels found, quitting..."
exit
1
fi
python3
-m
twine check
$PYPI_WHEEL_FILES
python3
-m
twine
--non-interactive
--verbose
upload
$PYPI_WHEEL_FILES
python3
-m
twine
upload
--non-interactive
--verbose
$PYPI_WHEEL_FILES
echo
"Wheels uploaded to PyPI"
# create release on GitHub with the release version and all wheels
command
"
$GH_BIN
"
release create
$GIT_VERSION
-d
--latest
--notes-from-tag
--verify-tag
$DIST_DIR
/
*
.whl
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment